[2026-07-13 05:22:30.357] [INFO ] [Ysp.Scheduler] Started. SFTP in 21h 37m, MIS in 1h 37m [2026-07-13 05:22:30.386] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}} [2026-07-13 05:22:30.397] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"}, []}} [2026-07-13 05:22:30.397] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"}, []}} [2026-07-13 05:22:32.110] [INFO ] Terminal Event Listener started and listening to events [2026-07-13 05:22:32.110] [INFO ] Rule Validation Worker started - will run every hour [2026-07-13 05:22:32.111] [INFO ] Building initial filter cache... [2026-07-13 05:22:32.129] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.3ms idle=426.6ms 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-07-13 05:22:32.144] [DEBUG] QUERY OK source="filter_usage" db=0.9ms queue=3.0ms idle=234.7ms 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-07-13 05:22:32.145] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 05:22:32.229] [INFO ] Device phoenix_client_piyush connected [2026-07-13 05:22:32.259] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http) [2026-07-13 05:22:32.271] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059 [2026-07-13 05:22:33.193] [DEBUG] Tzdata polling for update. [2026-07-13 05:22:34.257] [DEBUG] Tzdata polling shows the loaded tz database is up to date. [2026-07-13 05:22:49.484] [INFO ] GET / [2026-07-13 05:22:49.565] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-07-13 05:22:49.642] [DEBUG] QUERY OK source="users_tokens" db=0.6ms queue=2.7ms idle=1543.6ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 27, 45, 109, 172, 39, 234, 172, 161, 101, 184, 157, 80, 139, 213, 150, 119, 197, 89, 58, 11, 16, 98, 143, 187, 89, 160, 157, 63, 0, 206, 202>>, "session", ~U[2026-07-13 05:22:49.614558Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 05:22:49.750] [INFO ] Sent 200 in 266ms [2026-07-13 05:22:57.692] [INFO ] GET /images/favicon.png [2026-07-13 05:22:57.765] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 05:26:12.117] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 05:26:12.117] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T13:29:26Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T13:29:26Z","value":"67"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T13:29:26Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T13:29:26Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T13:29:26Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T13:29:26Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T13:29:26Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T13:29:26Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T13:29:26Z","vendor":"MoreFun"} [2026-07-13 05:26:12.122] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:29:26Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:29:26Z", "value" => "67"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:29:26Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:29:26Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:29:26Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:29:26Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:29:26Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:29:26Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T13:29:26Z", "vendor" => "MoreFun"} [2026-07-13 05:26:12.123] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 05:26:12.149] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 05:26:12.149] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 05:26:12.155] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=2.1ms idle=469.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 05:26:12.158] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.7ms idle=338.3ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 05:26:12.165] [DEBUG] QUERY OK source="parameter_template_values" db=1.0ms queue=2.4ms idle=6.7ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:26:12.182] [DEBUG] QUERY OK source="parameter_definitions" db=2.7ms queue=2.1ms idle=18.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:26:12.216] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms queue=1.6ms idle=48.2ms 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:165 [2026-07-13 05:26:12.223] [DEBUG] QUERY OK source="pos_merchant" db=0.4ms queue=3.5ms idle=36.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 05:26:12.229] [DEBUG] QUERY OK db=0.9ms queue=0.6ms idle=410.0ms 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 ["490603880000000"] [2026-07-13 05:26:12.230] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 05:26:12.236] [DEBUG] QUERY OK source="pos_terminal_data" db=0.5ms queue=0.5ms idle=18.7ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 05:26:12.242] [DEBUG] QUERY OK source="address" db=0.8ms queue=0.6ms idle=17.8ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 05:26:12.243] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 05:26:12.254] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 05:26:12.294] [DEBUG] QUERY OK db=12.2ms queue=1.7ms idle=41.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "69f163acdc513d00d4133f62e52cb9a9a510e013dca1551e3fb82640c006bc10", 515, 914, ~U[2026-07-13 05:26:12Z], "priv/ota/98251226730001/params.zip", 33, "parameter", "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" => "60", "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", ...}, "full", 10, "missing_version", "1.0.0", ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 05:26:12.294] [INFO ] AutoPushService: Created push log 33481 for MF919 params.zip [2026-07-13 05:26:12.299] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 515, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 05:26:12.299] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:26:12.306] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 05:26:12.319] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms queue=1.6ms idle=74.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 05:26:12.327] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 05:26:12.361] [DEBUG] QUERY OK db=31.0ms queue=0.9ms idle=37.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "7ac81abb9b4e9f70320568d5883aaa0430cdaed92da1df5bb9474ce25cdd35e8", 5794, 17947, ~U[2026-07-13 05:26:12Z], "priv/ota/98251226730001/l3config.zip", 33, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 05:26:12.362] [INFO ] AutoPushService: Created push log 33482 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 05:26:12.362] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 5794, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 05:26:12.364] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:26:12.364] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 05:26:12.366] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=45.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 05:26:12.387] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 05:26:12.391] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=27.9ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 05:26:12.391] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 05:26:12.465] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 05:26:12.465] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:26:12.466] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:26:12.467] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms idle=99.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 05:26:12.468] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 05:26:12.468] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 05:26:12.491] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=99.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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 05:26:12.508] [DEBUG] QUERY OK source="tms_terminals" db=15.8ms queue=0.4ms idle=24.1ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 05:26:12], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 05:26:12.514] [INFO ] Terminal updated: 98251226730001 [2026-07-13 05:26:12.514] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 05:26:12.514] [INFO ] Event published: terminal_updated [2026-07-13 05:26:12.514] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 05:26:12.516] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 05:26:12.532] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms queue=0.4ms idle=40.3ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 05:26:12], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 05:26:12.535] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=1.2ms idle=25.1ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 05:26:12.552] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms queue=2.3ms idle=14.7ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 05:26:12.552] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 05:26:12.555] [DEBUG] QUERY OK source="tms_terminals" db=21.0ms queue=0.8ms idle=0.5ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 05:26:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 05:26:12.562] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.8ms idle=7.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 05:26:12.563] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=7.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 05:26:12.563] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 05:26:12.565] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=0.1ms idle=1.9ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 05:26:12.627] [DEBUG] QUERY OK source="tms_terminals" db=20.3ms queue=40.6ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:26:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 05:26:12.650] [DEBUG] QUERY OK db=10.9ms queue=0.4ms idle=73.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T13:29:26Z", ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 05:26:12.659] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47046, oid: "organization_id", upload_time: "2026-07-13T13:29:26Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]} [2026-07-13 05:26:12.660] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:29:26Z", "value" => "online"} [2026-07-13 05:26:12.679] [DEBUG] QUERY OK db=16.3ms queue=2.9ms idle=33.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T13:29:26Z", "online", "status", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.679] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404533, itemkey: "status", value: "online", timestamp: "2026-07-13T13:29:26Z", message: "Terminal status update", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.680] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 05:26:12.723] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=41.3ms idle=30.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:26:12], 33] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 05:26:12.723] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:29:26Z", "value" => "67"} [2026-07-13 05:26:12.747] [DEBUG] QUERY OK db=23.4ms idle=38.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T13:29:26Z", "67", "battery", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.747] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404534, itemkey: "battery", value: "67", timestamp: "2026-07-13T13:29:26Z", message: "Battery level", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.748] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:29:26Z", "value" => "online"} [2026-07-13 05:26:12.772] [DEBUG] QUERY OK db=22.1ms queue=2.1ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T13:29:26Z", "online", "network", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.773] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404535, itemkey: "network", value: "online", timestamp: "2026-07-13T13:29:26Z", message: "Network connectivity", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.773] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 05:26:12.774] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=26.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:26:12], 33] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 05:26:12.774] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:29:26Z", "value" => "0"} [2026-07-13 05:26:12.789] [DEBUG] QUERY OK db=14.5ms idle=2.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T13:29:26Z", "0", "cpu", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.790] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404536, itemkey: "cpu", value: "0", timestamp: "2026-07-13T13:29:26Z", message: "CPU usage percentage", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.790] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:29:26Z", "value" => "1.0.0"} [2026-07-13 05:26:12.807] [DEBUG] QUERY OK db=16.5ms idle=16.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T13:29:26Z", "1.0.0", "parameter_config", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.807] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404537, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T13:29:26Z", message: "Current parameters version", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.807] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:29:26Z", "value" => "1.0.1"} [2026-07-13 05:26:12.831] [DEBUG] QUERY OK db=22.7ms queue=0.1ms idle=19.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T13:29:26Z", "1.0.1", "emv_config", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.832] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404538, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T13:29:26Z", message: "Current EMV config version", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.832] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:29:26Z", "value" => ""} [2026-07-13 05:26:12.862] [DEBUG] QUERY OK db=28.8ms queue=0.9ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T13:29:26Z", "keys_config", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.863] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404539, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T13:29:26Z", message: "Current keys config version", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.863] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:29:26Z", "value" => ""} [2026-07-13 05:26:12.878] [DEBUG] QUERY OK db=13.7ms queue=0.9ms idle=32.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T13:29:26Z", "application", 47046, ~N[2026-07-13 05:26:12], ~N[2026-07-13 05:26:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:12.879] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404540, itemkey: "application", value: nil, timestamp: "2026-07-13T13:29:26Z", message: "Current application version", status_log_id: 47046, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:12], updated_at: ~N[2026-07-13 05:26:12]}} [2026-07-13 05:26:12.880] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=16.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:26:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 05:26:12.887] [WARN ] Unexpected async result [2026-07-13 05:26:12.887] [WARN ] Unexpected async result [2026-07-13 05:26:51.217] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 05:26:51.217] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T13:30:05Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T13:30:05Z","value":"67"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T13:30:05Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T13:30:05Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T13:30:05Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T13:30:05Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T13:30:05Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T13:30:05Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T13:30:05Z","vendor":"MoreFun"} [2026-07-13 05:26:51.218] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:30:05Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:30:05Z", "value" => "67"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:30:05Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:30:05Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:30:05Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:30:05Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:30:05Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:30:05Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T13:30:05Z", "vendor" => "MoreFun"} [2026-07-13 05:26:51.218] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 05:26:51.218] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 05:26:51.218] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 05:26:51.219] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=1399.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 05:26:51.220] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=413.9ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 05:26:51.221] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms queue=0.1ms idle=1.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:26:51.224] [DEBUG] QUERY OK source="parameter_definitions" db=2.2ms queue=0.5ms idle=1.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:26:51.226] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=3.9ms 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:165 [2026-07-13 05:26:51.266] [DEBUG] QUERY OK source="pos_merchant" db=39.6ms idle=1.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 05:26:51.267] [DEBUG] QUERY OK db=0.6ms queue=0.5ms idle=1446.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 ["490603880000000"] [2026-07-13 05:26:51.267] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 05:26:51.268] [DEBUG] QUERY OK source="pos_terminal_data" db=0.5ms idle=41.7ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 05:26:51.269] [DEBUG] QUERY OK source="address" db=0.2ms queue=0.1ms idle=2.6ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 05:26:51.269] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 05:26:51.270] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 05:26:51.303] [DEBUG] QUERY OK db=31.7ms idle=3.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "0fef3f109b45e9402460179c9bd5da9ea9bce0f87960529aa815ddd736b5c5a5", 6050, 914, ~U[2026-07-13 05:26:51Z], "priv/ota/98251226730001/params.zip", 33, "parameter", "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" => "60", "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", ...}, "full", 10, "missing_version", "1.0.0", ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 05:26:51.303] [INFO ] AutoPushService: Created push log 33483 for MF919 params.zip [2026-07-13 05:26:51.303] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 6050, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 05:26:51.304] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:26:51.304] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 05:26:51.306] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms queue=0.1ms idle=35.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 05:26:51.310] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 05:26:51.324] [DEBUG] QUERY OK db=11.5ms idle=9.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "256413f36d01ba2a829365d67b9278ab941d0bedfdcfd92aaff01d912e945e2f", 835, 17947, ~U[2026-07-13 05:26:51Z], "priv/ota/98251226730001/l3config.zip", 33, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 05:26:51.324] [INFO ] AutoPushService: Created push log 33484 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 05:26:51.324] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 835, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 05:26:51.324] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:26:51.326] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 05:26:51.327] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=20.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 05:26:51.327] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 05:26:51.328] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=3.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 05:26:51.328] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 05:26:51.331] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 05:26:51.332] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:26:51.332] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:26:51.333] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=5.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 05:26:51.334] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 05:26:51.334] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 05:26:51.335] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=5.7ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 05:26:51.336] [INFO ] Terminal updated: 98251226730001 [2026-07-13 05:26:51.356] [DEBUG] QUERY OK source="tms_terminals" db=20.2ms idle=3.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 05:26:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 05:26:51.358] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=21.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 05:26:51.359] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 05:26:51.359] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 05:26:51.360] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 05:26:51.391] [DEBUG] QUERY OK source="tms_terminals" db=31.1ms idle=1.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:26:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 05:26:51.410] [DEBUG] QUERY OK db=17.9ms queue=0.4ms idle=31.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T13:30:05Z", ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 05:26:51.411] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47047, oid: "organization_id", upload_time: "2026-07-13T13:30:05Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]} [2026-07-13 05:26:51.411] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:30:05Z", "value" => "online"} [2026-07-13 05:26:51.429] [DEBUG] QUERY OK db=17.2ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T13:30:05Z", "online", "status", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.434] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404541, itemkey: "status", value: "online", timestamp: "2026-07-13T13:30:05Z", message: "Terminal status update", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.434] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 05:26:51.435] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:30:05Z", "value" => "67"} [2026-07-13 05:26:51.456] [DEBUG] QUERY OK db=21.2ms idle=24.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T13:30:05Z", "67", "battery", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.456] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404542, itemkey: "battery", value: "67", timestamp: "2026-07-13T13:30:05Z", message: "Battery level", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.457] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:30:05Z", "value" => "online"} [2026-07-13 05:26:51.490] [DEBUG] QUERY OK db=32.9ms idle=28.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T13:30:05Z", "online", "network", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.490] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404543, itemkey: "network", value: "online", timestamp: "2026-07-13T13:30:05Z", message: "Network connectivity", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.490] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 05:26:51.490] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:30:05Z", "value" => "0"} [2026-07-13 05:26:51.509] [DEBUG] QUERY OK db=17.9ms idle=34.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T13:30:05Z", "0", "cpu", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.509] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404544, itemkey: "cpu", value: "0", timestamp: "2026-07-13T13:30:05Z", message: "CPU usage percentage", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.509] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:30:05Z", "value" => "1.0.0"} [2026-07-13 05:26:51.521] [DEBUG] QUERY OK db=11.7ms idle=19.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T13:30:05Z", "1.0.0", "parameter_config", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.521] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404545, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T13:30:05Z", message: "Current parameters version", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.522] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:30:05Z", "value" => "1.0.1"} [2026-07-13 05:26:51.540] [DEBUG] QUERY OK db=17.7ms idle=13.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T13:30:05Z", "1.0.1", "emv_config", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.540] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404546, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T13:30:05Z", message: "Current EMV config version", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.540] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:30:05Z", "value" => ""} [2026-07-13 05:26:51.569] [DEBUG] QUERY OK db=28.0ms idle=19.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T13:30:05Z", "keys_config", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.569] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404547, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T13:30:05Z", message: "Current keys config version", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.569] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:30:05Z", "value" => ""} [2026-07-13 05:26:51.599] [DEBUG] QUERY OK db=29.6ms idle=29.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T13:30:05Z", "application", 47047, ~N[2026-07-13 05:26:51], ~N[2026-07-13 05:26:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:51.599] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404548, itemkey: "application", value: nil, timestamp: "2026-07-13T13:30:05Z", message: "Current application version", status_log_id: 47047, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:51], updated_at: ~N[2026-07-13 05:26:51]}} [2026-07-13 05:26:51.600] [WARN ] Unexpected async result [2026-07-13 05:26:51.600] [WARN ] Unexpected async result [2026-07-13 05:26:57.625] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 05:26:57.625] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T13:30:12Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T13:30:12Z","value":"67"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T13:30:12Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T13:30:12Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T13:30:12Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T13:30:12Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T13:30:12Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T13:30:12Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T13:30:12Z","vendor":"MoreFun"} [2026-07-13 05:26:57.626] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:30:12Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:30:12Z", "value" => "67"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:30:12Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:30:12Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:30:12Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:30:12Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:30:12Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:30:12Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T13:30:12Z", "vendor" => "MoreFun"} [2026-07-13 05:26:57.626] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 05:26:57.626] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 05:26:57.626] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 05:26:57.628] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=807.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 05:26:57.630] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=803.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 05:26:57.631] [DEBUG] QUERY OK source="parameter_template_values" db=0.4ms queue=0.1ms idle=2.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:26:57.634] [DEBUG] QUERY OK source="parameter_definitions" db=1.1ms queue=2.2ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:26:57.638] [DEBUG] QUERY OK source="pos_terminal" db=1.3ms idle=5.6ms 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:165 [2026-07-13 05:26:57.675] [DEBUG] QUERY OK source="pos_merchant" db=37.6ms idle=3.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 05:26:57.678] [DEBUG] QUERY OK db=0.8ms queue=1.2ms idle=1857.1ms 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 ["490603880000000"] [2026-07-13 05:26:57.679] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 05:26:57.681] [DEBUG] QUERY OK source="pos_terminal_data" db=2.6ms idle=41.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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 05:26:57.682] [DEBUG] QUERY OK source="address" db=0.4ms idle=6.2ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 05:26:57.682] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 05:26:57.685] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 05:26:57.721] [DEBUG] QUERY OK db=35.7ms idle=3.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "e09a2523302b543f9bd21705ff164c7f20512973e64dc760f028f77fa5c0cc6f", 6114, 914, ~U[2026-07-13 05:26:57Z], "priv/ota/98251226730001/params.zip", 33, "parameter", "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" => "60", "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", ...}, "full", 10, "missing_version", "1.0.0", ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 05:26:57.722] [INFO ] AutoPushService: Created push log 33485 for MF919 params.zip [2026-07-13 05:26:57.722] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 6114, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 05:26:57.722] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:26:57.722] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 05:26:57.724] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=41.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 05:26:57.727] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 05:26:57.741] [DEBUG] QUERY OK db=12.5ms idle=7.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c78305ba39571925c7b0e8c951537914af4b3606b9836b61482af0488dcaa8fa", 6178, 17947, ~U[2026-07-13 05:26:57Z], "priv/ota/98251226730001/l3config.zip", 33, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 05:26:57.742] [INFO ] AutoPushService: Created push log 33486 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 05:26:57.742] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 6178, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 05:26:57.742] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:26:57.742] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 05:26:57.746] [DEBUG] QUERY OK source="config_file_versions" db=4.1ms idle=17.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 05:26:57.746] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 05:26:57.748] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=5.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 05:26:57.748] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 05:26:57.750] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 05:26:57.751] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:26:57.752] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:26:57.755] [DEBUG] QUERY OK source="config_file_versions" db=3.3ms idle=5.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 05:26:57.756] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 05:26:57.756] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 05:26:57.758] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=9.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 05:26:57.758] [INFO ] Terminal updated: 98251226730001 [2026-07-13 05:26:57.779] [DEBUG] QUERY OK source="tms_terminals" db=20.4ms idle=2.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 05:26:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 05:26:57.780] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=21.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 05:26:57.781] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms queue=0.1ms idle=2.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 05:26:57.782] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 05:26:57.782] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1.7ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 05:26:57.812] [DEBUG] QUERY OK source="tms_terminals" db=29.1ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:26:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 05:26:57.834] [DEBUG] QUERY OK db=20.7ms queue=0.7ms idle=30.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T13:30:12Z", ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 05:26:57.835] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47048, oid: "organization_id", upload_time: "2026-07-13T13:30:12Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]} [2026-07-13 05:26:57.835] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:30:12Z", "value" => "online"} [2026-07-13 05:26:57.847] [DEBUG] QUERY OK db=11.6ms queue=0.1ms idle=9.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T13:30:12Z", "online", "status", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404549, itemkey: "status", value: "online", timestamp: "2026-07-13T13:30:12Z", message: "Terminal status update", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.848] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 05:26:57.849] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:30:12Z", "value" => "67"} [2026-07-13 05:26:57.872] [DEBUG] QUERY OK db=23.3ms idle=14.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T13:30:12Z", "67", "battery", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.873] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404550, itemkey: "battery", value: "67", timestamp: "2026-07-13T13:30:12Z", message: "Battery level", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.874] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:30:12Z", "value" => "online"} [2026-07-13 05:26:57.912] [DEBUG] QUERY OK db=37.6ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T13:30:12Z", "online", "network", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.912] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404551, itemkey: "network", value: "online", timestamp: "2026-07-13T13:30:12Z", message: "Network connectivity", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.912] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 05:26:57.912] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:30:12Z", "value" => "0"} [2026-07-13 05:26:57.924] [DEBUG] QUERY OK db=11.3ms idle=40.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T13:30:12Z", "0", "cpu", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.924] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404552, itemkey: "cpu", value: "0", timestamp: "2026-07-13T13:30:12Z", message: "CPU usage percentage", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.924] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:30:12Z", "value" => "1.0.0"} [2026-07-13 05:26:57.939] [DEBUG] QUERY OK db=14.0ms idle=13.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T13:30:12Z", "1.0.0", "parameter_config", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.939] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404553, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T13:30:12Z", message: "Current parameters version", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.939] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:30:12Z", "value" => "1.0.1"} [2026-07-13 05:26:57.959] [DEBUG] QUERY OK db=19.9ms idle=15.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T13:30:12Z", "1.0.1", "emv_config", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.960] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404554, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T13:30:12Z", message: "Current EMV config version", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.960] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:30:12Z", "value" => ""} [2026-07-13 05:26:57.997] [DEBUG] QUERY OK db=36.5ms idle=21.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T13:30:12Z", "keys_config", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:57.997] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404555, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T13:30:12Z", message: "Current keys config version", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:57.997] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:30:12Z", "value" => ""} [2026-07-13 05:26:58.019] [DEBUG] QUERY OK db=21.2ms idle=38.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T13:30:12Z", "application", 47048, ~N[2026-07-13 05:26:57], ~N[2026-07-13 05:26:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:26:58.020] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404556, itemkey: "application", value: nil, timestamp: "2026-07-13T13:30:12Z", message: "Current application version", status_log_id: 47048, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:26:57], updated_at: ~N[2026-07-13 05:26:57]}} [2026-07-13 05:26:58.020] [WARN ] Unexpected async result [2026-07-13 05:26:58.020] [WARN ] Unexpected async result [2026-07-13 05:27:32.094] [INFO ] Running offline device check... [2026-07-13 05:27:32.094] [INFO ] Starting offline device check... [2026-07-13 05:27:32.096] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.5ms idle=262.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 05:27:32.105] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms queue=0.7ms idle=117.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.112] [INFO ] Starting scheduled rule validation [2026-07-13 05:27:32.112] [DEBUG] Validating missing assignments [2026-07-13 05:27:32.115] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.118] [DEBUG] QUERY OK source="terminal_group_rules" db=4.6ms queue=0.2ms idle=8.0ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 05:27:32.119] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.121] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms idle=0.2ms 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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 05:27:32.121] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.122] [DEBUG] Re-applied 0 rules during validation [2026-07-13 05:27:32.122] [DEBUG] Validating invalid assignments [2026-07-13 05:27:32.122] [DEBUG] Validating rule consistency [2026-07-13 05:27:32.122] [DEBUG] Updating group terminal counts [2026-07-13 05:27:32.123] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.124] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.134] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms queue=1.5ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 05:27:32.135] [DEBUG] QUERY OK source="terminal_groups" db=0.4ms queue=0.8ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 05:27:32.138] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.144] [DEBUG] QUERY OK source="terminal_groups" db=0.4ms queue=0.5ms idle=3.4ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 05:27:32.148] [DEBUG] QUERY OK source="terminal_group_rules" db=2.6ms queue=1.5ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 05:27:32.151] [DEBUG] QUERY OK source="terminal_group_rules" db=1.3ms queue=0.8ms idle=0.3ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 05:27:32.151] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.152] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=0.6ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 05:27:32.153] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms queue=0.7ms idle=0.1ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 05:27:32.156] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.158] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.4ms queue=2.2ms idle=0.9ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 05:27:32.158] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 05:27:32.158] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 05:27:32.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.183] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=16.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.184] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.186] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.189] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.211] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.8ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=16.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.221] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.228] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.239] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.241] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.242] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.243] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.245] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:27:32.245] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 05:27:32.246] [INFO ] Offline device check completed successfully [2026-07-13 05:27:50.080] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 05:27:50.080] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T13:31:04Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T13:31:04Z","value":"67"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T13:31:04Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T13:31:04Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T13:31:04Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T13:31:04Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T13:31:04Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T13:31:04Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T13:31:04Z","vendor":"MoreFun"} [2026-07-13 05:27:50.081] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:31:04Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:31:04Z", "value" => "67"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:31:04Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:31:04Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:31:04Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:31:04Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:31:04Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:31:04Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T13:31:04Z", "vendor" => "MoreFun"} [2026-07-13 05:27:50.081] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 05:27:50.081] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 05:27:50.081] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 05:27:50.082] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=1051.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 05:27:50.083] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=50.3ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 05:27:50.083] [DEBUG] QUERY OK source="parameter_template_values" db=0.5ms idle=0.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:27:50.088] [DEBUG] QUERY OK source="parameter_definitions" db=3.8ms queue=0.7ms idle=1.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 05:27:50.091] [DEBUG] QUERY OK source="pos_terminal" db=1.9ms idle=5.4ms 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:165 [2026-07-13 05:27:50.131] [DEBUG] QUERY OK source="pos_merchant" db=39.3ms idle=2.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 05:27:50.133] [DEBUG] QUERY OK db=0.9ms queue=1.4ms idle=1298.0ms 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 ["490603880000000"] [2026-07-13 05:27:50.133] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 05:27:50.134] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms idle=42.7ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 05:27:50.137] [DEBUG] QUERY OK source="address" db=2.7ms idle=3.9ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 05:27:50.137] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 05:27:50.139] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 05:27:50.158] [DEBUG] QUERY OK db=18.7ms idle=5.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "4e44902f57e1da7dc4d99f1f92ae1a7510cc702c13882d782ea2abfdc1156143", 452, 914, ~U[2026-07-13 05:27:50Z], "priv/ota/98251226730001/params.zip", 33, "parameter", "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" => "60", "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", ...}, "full", 10, "missing_version", "1.0.0", ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 05:27:50.158] [INFO ] AutoPushService: Created push log 33487 for MF919 params.zip [2026-07-13 05:27:50.159] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 452, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 05:27:50.159] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:27:50.160] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 05:27:50.162] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=23.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 05:27:50.168] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 05:27:50.179] [DEBUG] QUERY OK db=10.8ms idle=10.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "7b771329eeca2366acf757f3f9c69851075fb407f1f97424e5c8e99e63691e42", 1283, 17947, ~U[2026-07-13 05:27:50Z], "priv/ota/98251226730001/l3config.zip", 33, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 05:27:50.180] [INFO ] AutoPushService: Created push log 33488 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 05:27:50.180] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 1283, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 05:27:50.180] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 05:27:50.180] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 05:27:50.182] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=19.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 05:27:50.182] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 05:27:50.184] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=3.2ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 05:27:50.184] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 05:27:50.187] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 05:27:50.188] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:27:50.188] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 05:27:50.189] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=6.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 05:27:50.190] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 05:27:50.190] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 05:27:50.192] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=8.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 05:27:50.193] [INFO ] Terminal updated: 98251226730001 [2026-07-13 05:27:50.217] [DEBUG] QUERY OK source="tms_terminals" db=23.8ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 05:27:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 05:27:50.219] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=25.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 05:27:50.222] [DEBUG] QUERY OK source="config_file_versions" db=2.2ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 05:27:50.222] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 05:27:50.225] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=3.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 05:27:50.252] [DEBUG] QUERY OK source="tms_terminals" db=26.4ms idle=3.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 05:27:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 05:27:50.271] [DEBUG] QUERY OK db=18.4ms idle=27.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T13:31:04Z", ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 05:27:50.272] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47049, oid: "organization_id", upload_time: "2026-07-13T13:31:04Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]} [2026-07-13 05:27:50.272] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T13:31:04Z", "value" => "online"} [2026-07-13 05:27:50.294] [DEBUG] QUERY OK db=21.8ms idle=20.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T13:31:04Z", "online", "status", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.295] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404557, itemkey: "status", value: "online", timestamp: "2026-07-13T13:31:04Z", message: "Terminal status update", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.295] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 05:27:50.295] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T13:31:04Z", "value" => "67"} [2026-07-13 05:27:50.324] [DEBUG] QUERY OK db=28.7ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T13:31:04Z", "67", "battery", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.324] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404558, itemkey: "battery", value: "67", timestamp: "2026-07-13T13:31:04Z", message: "Battery level", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.325] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T13:31:04Z", "value" => "online"} [2026-07-13 05:27:50.351] [DEBUG] QUERY OK db=25.5ms idle=30.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T13:31:04Z", "online", "network", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.351] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404559, itemkey: "network", value: "online", timestamp: "2026-07-13T13:31:04Z", message: "Network connectivity", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.351] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 05:27:50.351] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T13:31:04Z", "value" => "0"} [2026-07-13 05:27:50.363] [DEBUG] QUERY OK db=11.3ms idle=27.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T13:31:04Z", "0", "cpu", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.363] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404560, itemkey: "cpu", value: "0", timestamp: "2026-07-13T13:31:04Z", message: "CPU usage percentage", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.363] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T13:31:04Z", "value" => "1.0.0"} [2026-07-13 05:27:50.386] [DEBUG] QUERY OK db=22.1ms idle=13.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T13:31:04Z", "1.0.0", "parameter_config", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.386] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404561, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T13:31:04Z", message: "Current parameters version", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.386] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T13:31:04Z", "value" => "1.0.1"} [2026-07-13 05:27:50.412] [DEBUG] QUERY OK db=23.1ms idle=23.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T13:31:04Z", "1.0.1", "emv_config", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.413] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404562, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T13:31:04Z", message: "Current EMV config version", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.413] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T13:31:04Z", "value" => ""} [2026-07-13 05:27:50.448] [DEBUG] QUERY OK db=34.4ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T13:31:04Z", "keys_config", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.448] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404563, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T13:31:04Z", message: "Current keys config version", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.448] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T13:31:04Z", "value" => ""} [2026-07-13 05:27:50.459] [DEBUG] QUERY OK db=11.0ms idle=38.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T13:31:04Z", "application", 47049, ~N[2026-07-13 05:27:50], ~N[2026-07-13 05:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 05:27:50.460] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404564, itemkey: "application", value: nil, timestamp: "2026-07-13T13:31:04Z", message: "Current application version", status_log_id: 47049, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 05:27:50], updated_at: ~N[2026-07-13 05:27:50]}} [2026-07-13 05:27:50.460] [WARN ] Unexpected async result [2026-07-13 05:27:50.461] [WARN ] Unexpected async result [2026-07-13 05:31:36.647] [INFO ] Device phoenix_client_piyush disconnected [2026-07-13 05:31:49.459] [INFO ] Device phoenix_client_piyush connected [2026-07-13 05:32:32.246] [INFO ] Running offline device check... [2026-07-13 05:32:32.246] [INFO ] Starting offline device check... [2026-07-13 05:32:32.248] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.1ms idle=388.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 05:32:32.259] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.7ms idle=181.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms queue=0.1ms idle=11.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.271] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.272] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.275] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.280] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.283] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.291] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.293] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.306] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.316] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.319] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.320] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.340] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.341] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=20.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.345] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.347] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.351] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=2.0ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.370] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.5ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.371] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=19.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.373] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.380] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.382] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.3ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.386] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.387] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.392] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.393] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.395] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.397] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.398] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.398] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.401] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms queue=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:32:32.406] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 05:32:32.407] [INFO ] Offline device check completed successfully [2026-07-13 05:37:32.111] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 05:37:32.113] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms queue=0.1ms idle=1001.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-07-13 05:37:32.116] [DEBUG] QUERY OK source="filter_usage" db=1.5ms idle=0.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-07-13 05:37:32.116] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 05:37:32.408] [INFO ] Running offline device check... [2026-07-13 05:37:32.408] [INFO ] Starting offline device check... [2026-07-13 05:37:32.411] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=292.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 05:37:32.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=295.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.430] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=11.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.437] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.440] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.441] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.443] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.449] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.463] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.467] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.488] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.491] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=19.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.493] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.495] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.496] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.510] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.512] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=14.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.513] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.521] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.526] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.528] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.532] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.537] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.540] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.541] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.542] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.544] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.546] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.546] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.547] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.548] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 05:37:32.548] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 05:37:32.548] [INFO ] Offline device check completed successfully [2026-07-13 06:45:13.382] [INFO ] [Ysp.Scheduler] Started. SFTP in 20h 14m, MIS in 0h 14m [2026-07-13 06:45:13.439] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}} [2026-07-13 06:45:13.467] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"}, []}} [2026-07-13 06:45:13.468] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"}, []}} [2026-07-13 06:45:15.321] [INFO ] Terminal Event Listener started and listening to events [2026-07-13 06:45:15.322] [INFO ] Rule Validation Worker started - will run every hour [2026-07-13 06:45:15.323] [INFO ] Building initial filter cache... [2026-07-13 06:45:15.337] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.5ms idle=619.7ms 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-07-13 06:45:15.347] [DEBUG] QUERY OK source="filter_usage" db=1.8ms queue=0.5ms idle=382.3ms 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-07-13 06:45:15.348] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 06:45:15.421] [INFO ] Device phoenix_client_piyush connected [2026-07-13 06:45:15.456] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http) [2026-07-13 06:45:15.469] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059 [2026-07-13 06:50:15.312] [INFO ] Running offline device check... [2026-07-13 06:50:15.340] [INFO ] Starting scheduled rule validation [2026-07-13 06:50:15.340] [DEBUG] Validating missing assignments [2026-07-13 06:50:15.346] [INFO ] Starting offline device check... [2026-07-13 06:50:15.349] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=1.6ms idle=613.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 06:50:15.375] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms queue=0.5ms idle=25.0ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 06:50:15.378] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=1.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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 06:50:15.379] [DEBUG] Re-applied 0 rules during validation [2026-07-13 06:50:15.379] [DEBUG] Validating invalid assignments [2026-07-13 06:50:15.379] [DEBUG] Validating rule consistency [2026-07-13 06:50:15.379] [DEBUG] Updating group terminal counts [2026-07-13 06:50:15.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms queue=0.9ms idle=312.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.397] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.5ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.398] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms queue=0.8ms idle=18.4ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 06:50:15.399] [DEBUG] QUERY OK source="terminal_groups" db=0.5ms queue=0.4ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 06:50:15.400] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.403] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.405] [DEBUG] QUERY OK source="terminal_groups" db=0.2ms queue=0.9ms idle=0.5ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 06:50:15.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.406] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms queue=0.7ms idle=0.1ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 06:50:15.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.407] [DEBUG] QUERY OK source="terminal_group_rules" db=0.3ms queue=0.8ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 06:50:15.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.410] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.413] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms queue=0.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.421] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=1.6ms idle=6.0ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 06:50:15.424] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms queue=1.4ms idle=1.9ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 06:50:15.426] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms queue=0.4ms idle=0.4ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 06:50:15.431] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 06:50:15.431] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 06:50:15.444] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.3ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.449] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=18.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.451] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.454] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.470] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.5ms idle=16.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.474] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.476] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.477] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.479] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.495] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.8ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.545] [DEBUG] QUERY OK source="tms_terminals" db=14.3ms queue=2.7ms idle=45.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:50:15], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 06:50:15.546] [INFO ] Terminal 98251226730001 back online [2026-07-13 06:50:15.547] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=50.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.548] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.560] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.0ms queue=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.561] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.564] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.565] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.576] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=1.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.578] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.582] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.584] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.586] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.588] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:50:15.592] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 06:50:15.593] [INFO ] Offline device check completed successfully [2026-07-13 06:55:13.554] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 06:55:13.554] [INFO ] Incoming JSON payload: {"oid":"d3ac7bd0-82df-4940-acd7-fd90590657f2","sn":"98251226730001","uploadTime":"2026-07-13T14:58:28Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"ram_free_mb","value":"959","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T14:58:28Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 06:55:13.556] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "d3ac7bd0-82df-4940-acd7-fd90590657f2", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T14:58:28Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T14:58:28Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T14:58:28Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T14:58:28Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T14:58:28Z", "value" => "959"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T14:58:28Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T14:58:28Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T14:58:28Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T14:58:28Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T14:58:28Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T14:58:28Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T14:58:28Z", "vendor" => "morefun"} [2026-07-13 06:55:13.556] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 06:55:13.566] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 06:55:13.567] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 06:55:13.572] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms queue=1.3ms idle=1452.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:55:13.573] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.4ms idle=451.1ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 06:55:13.574] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 06:55:13.575] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.6ms idle=1.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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:55:13.647] [DEBUG] QUERY OK source="tms_terminals" db=30.2ms queue=41.1ms idle=1.6ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 06:55:13], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 06:55:13.651] [INFO ] Terminal updated: 98251226730001 [2026-07-13 06:55:13.651] [INFO ] Event published: terminal_updated [2026-07-13 06:55:13.651] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 06:55:13.651] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 06:55:13.652] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 06:55:13.653] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.7ms queue=1.4ms idle=76.1ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 06:55:13], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 06:55:13.656] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.6ms idle=7.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 06:55:13.659] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 06:55:13.659] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 06:55:13.687] [DEBUG] QUERY OK source="tms_terminals" db=30.3ms queue=2.8ms idle=0.9ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 06:55:13], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:55:13.695] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 06:55:13.697] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=36.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:55:13.751] [DEBUG] QUERY OK source="tms_terminals" db=12.5ms queue=40.6ms idle=10.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:55:13], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:55:13.782] [DEBUG] QUERY OK db=20.5ms queue=0.3ms idle=64.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "d3ac7bd0-82df-4940-acd7-fd90590657f2", "2026-07-13T14:58:28Z", ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:55:13.795] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47050, oid: "d3ac7bd0-82df-4940-acd7-fd90590657f2", upload_time: "2026-07-13T14:58:28Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]} [2026-07-13 06:55:13.795] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T14:58:28Z", "value" => "morefun"} [2026-07-13 06:55:13.821] [DEBUG] QUERY OK db=25.3ms queue=0.8ms idle=44.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "morefun", "vendor", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.822] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404565, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.822] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T14:58:28Z", "value" => "kiosk_launcher"} [2026-07-13 06:55:13.839] [DEBUG] QUERY OK db=17.1ms idle=0.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "kiosk_launcher", "model", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.840] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404566, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.840] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T14:58:28Z", "value" => "1.0"} [2026-07-13 06:55:13.851] [DEBUG] QUERY OK db=10.5ms queue=0.1ms idle=1.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "1.0", "app_version", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.851] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404567, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.851] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T14:58:28Z", "value" => "13"} [2026-07-13 06:55:13.872] [DEBUG] QUERY OK db=19.4ms queue=0.8ms idle=11.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "13", "android_version", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.872] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404568, itemkey: "android_version", value: "13", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.872] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T14:58:28Z", "value" => "959"} [2026-07-13 06:55:13.905] [DEBUG] QUERY OK db=32.6ms idle=21.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "959", "ram_free_mb", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.906] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404569, itemkey: "ram_free_mb", value: "959", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.906] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T14:58:28Z", "value" => "WIFI"} [2026-07-13 06:55:13.936] [DEBUG] QUERY OK db=30.0ms idle=34.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "WIFI", "network_type", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.937] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404570, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.937] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T14:58:28Z", "value" => "true"} [2026-07-13 06:55:13.948] [DEBUG] QUERY OK db=10.7ms idle=31.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "true", "kiosk_active", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.949] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404571, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.949] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T14:58:28Z", "value" => ""} [2026-07-13 06:55:13.965] [DEBUG] QUERY OK db=14.4ms queue=0.4ms idle=13.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T14:58:28Z", "sim_operator", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:13.965] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404572, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:13.965] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"} [2026-07-13 06:55:14.005] [DEBUG] QUERY OK db=37.8ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "UNKNOWN", "sim_number", 47050, ~N[2026-07-13 06:55:13], ~N[2026-07-13 06:55:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.005] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404573, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:13], updated_at: ~N[2026-07-13 06:55:13]}} [2026-07-13 06:55:14.005] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"} [2026-07-13 06:55:14.034] [DEBUG] QUERY OK db=28.0ms idle=41.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "UNKNOWN", "sim_iccid", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.034] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404574, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:14.035] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"} [2026-07-13 06:55:14.052] [DEBUG] QUERY OK db=15.3ms idle=31.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "UNKNOWN", "sim_imsi", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404575, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:14.052] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"} [2026-07-13 06:55:14.070] [DEBUG] QUERY OK db=16.9ms idle=18.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "UNKNOWN", "sim_iccid2", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.070] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404576, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:14.070] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T14:58:28Z", "value" => "UNKNOWN"} [2026-07-13 06:55:14.094] [DEBUG] QUERY OK db=23.0ms idle=18.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "UNKNOWN", "sim_imsi2", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.095] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404577, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:14.095] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T14:58:28Z", "value" => "1"} [2026-07-13 06:55:14.125] [DEBUG] QUERY OK db=28.4ms queue=0.1ms idle=26.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "1", "data_usage_mb", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.125] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404578, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:14.125] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T14:58:28Z", "value" => "0"} [2026-07-13 06:55:14.142] [DEBUG] QUERY OK db=16.4ms idle=0.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "0", "mobile_data_mb", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404579, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:14.143] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T14:58:28Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 06:55:14.294] [DEBUG] QUERY OK db=147.5ms idle=20.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T14:58:28Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47050, ~N[2026-07-13 06:55:14], ~N[2026-07-13 06:55:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:55:14.296] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404580, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T14:58:28Z", message: nil, status_log_id: 47050, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:55:14], updated_at: ~N[2026-07-13 06:55:14]}} [2026-07-13 06:55:15.593] [INFO ] Running offline device check... [2026-07-13 06:55:15.594] [INFO ] Starting offline device check... [2026-07-13 06:55:15.595] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1300.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 06:55:15.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms queue=1.5ms idle=469.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.616] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.4ms idle=11.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.621] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=13.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.622] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.625] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.628] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.630] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.639] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.6ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.651] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.659] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=10.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.662] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.676] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.9ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.678] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=14.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.679] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.680] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.681] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.682] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.1ms queue=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.702] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=19.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.711] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.715] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.717] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.722] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.724] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.726] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.730] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.734] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.737] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=2.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.739] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 06:55:15.739] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 06:55:15.739] [INFO ] Offline device check completed successfully [2026-07-13 06:57:12.734] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 06:57:12.734] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:07:03Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:07:03Z","value":"33"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:07:03Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:07:03Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:07:03Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:07:03Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:07:03Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:07:03Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:07:03Z","vendor":"MoreFun"} [2026-07-13 06:57:12.735] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:07:03Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:07:03Z", "value" => "33"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:07:03Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:07:03Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:07:03Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:07:03Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:07:03Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:07:03Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:07:03Z", "vendor" => "MoreFun"} [2026-07-13 06:57:12.735] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 06:57:12.735] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 06:57:12.735] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 06:57:12.737] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=1227.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:57:12.738] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=226.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 06:57:12.741] [DEBUG] QUERY OK source="parameter_template_values" db=0.7ms queue=0.3ms idle=3.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:57:12.751] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.8ms idle=11.8ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:57:12.758] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms queue=0.5ms idle=15.8ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 06:57:12.795] [DEBUG] QUERY OK source="pos_merchant" db=2.2ms queue=31.4ms idle=10.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 06:57:12.799] [DEBUG] QUERY OK db=0.8ms queue=0.5ms idle=10.1ms 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 ["501983400000000"] [2026-07-13 06:57:12.800] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 06:57:12.806] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms queue=0.4ms idle=46.8ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 06:57:12.810] [DEBUG] QUERY OK source="address" db=0.3ms queue=0.6ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 06:57:12.811] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 06:57:12.817] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 06:57:12.851] [DEBUG] QUERY OK db=24.1ms queue=0.4ms idle=15.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "3ab15db46154d932f1791d131b5275dbbb70a5412137c9814b2ac6ddd1ef45a8", 548, 915, ~U[2026-07-13 06:57:12Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 06:57:12], ~N[2026-07-13 06:57:12]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 06:57:12.852] [INFO ] AutoPushService: Created push log 33489 for MF919 params.zip [2026-07-13 06:57:12.855] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 548, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 06:57:12.855] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:57:12.858] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 06:57:12.869] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms queue=1.7ms idle=55.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 06:57:12.881] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 06:57:12.897] [DEBUG] QUERY OK db=13.7ms queue=0.5ms idle=35.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "d9fb25d9ded8045addb3d6caac77e2382716461ea6fe461357ae98b7f0c98b56", 708, 17947, ~U[2026-07-13 06:57:12Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 06:57:12], ~N[2026-07-13 06:57:12]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 06:57:12.897] [INFO ] AutoPushService: Created push log 33490 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 06:57:12.897] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 708, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 06:57:12.897] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:57:12.898] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 06:57:12.899] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=29.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 06:57:12.906] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 06:57:12.907] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=9.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 06:57:12.908] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 06:57:12.974] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 06:57:12.974] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:57:12.974] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:57:12.976] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms queue=0.3ms idle=75.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:57:12.976] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:57:12.976] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 06:57:12.977] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.3ms idle=68.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:57:13.044] [DEBUG] QUERY OK source="tms_terminals" db=25.1ms queue=41.5ms idle=2.0ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 06:57:12], 19] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 06:57:13.044] [INFO ] Terminal updated: 98250623730001 [2026-07-13 06:57:13.045] [INFO ] Event published: terminal_updated [2026-07-13 06:57:13.045] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 06:57:13.045] [INFO ] Processing terminal_updated event for terminal 19 [2026-07-13 06:57:13.045] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 06:57:13.047] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.7ms idle=67.9ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 06:57:13], 19] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 06:57:13.048] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.1ms idle=3.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.`id` = ?) [19] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 06:57:13.050] [DEBUG] QUERY OK source="terminal_group_rules" db=1.6ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 06:57:13.050] [INFO ] Applied 0 rules to terminal 98250623730001 [2026-07-13 06:57:13.105] [DEBUG] QUERY OK source="tms_terminals" db=16.3ms queue=41.1ms idle=0.5ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `app_version` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 06:57:13], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:57:13.106] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.5ms idle=54.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 06:57:13.108] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:57:13.109] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.1ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:57:13.109] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 06:57:13.164] [DEBUG] QUERY OK source="parameter_push_logs" db=47.4ms queue=0.5ms idle=7.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 [19, "application", ~N[2026-07-13 06:27:13]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 06:57:13.164] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 06:57:13.164] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 06:57:13.166] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms queue=0.1ms idle=55.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 06:57:13.167] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:57:13.167] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:57:13.168] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:57:13.232] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms queue=41.3ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:57:13], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:57:13.275] [DEBUG] QUERY OK db=40.9ms queue=0.9ms idle=64.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:07:03Z", ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:57:13.275] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47051, oid: "organization_id", upload_time: "2026-07-12T22:07:03Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]} [2026-07-13 06:57:13.275] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:07:03Z", "value" => "online"} [2026-07-13 06:57:13.290] [DEBUG] QUERY OK db=12.8ms queue=1.8ms idle=43.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:07:03Z", "online", "status", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.291] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404581, itemkey: "status", value: "online", timestamp: "2026-07-12T22:07:03Z", message: "Terminal status update", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.291] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 06:57:13.294] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=0.5ms idle=18.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:57:13], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 06:57:13.294] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:07:03Z", "value" => "33"} [2026-07-13 06:57:13.314] [DEBUG] QUERY OK db=19.7ms idle=4.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:07:03Z", "33", "battery", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.315] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404582, itemkey: "battery", value: "33", timestamp: "2026-07-12T22:07:03Z", message: "Battery level", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.315] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:07:03Z", "value" => "online"} [2026-07-13 06:57:13.354] [DEBUG] QUERY OK db=35.3ms queue=2.5ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:07:03Z", "online", "network", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.354] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404583, itemkey: "network", value: "online", timestamp: "2026-07-12T22:07:03Z", message: "Network connectivity", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.354] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 06:57:13.360] [DEBUG] QUERY OK source="tms_terminals" db=5.0ms idle=40.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:57:13], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 06:57:13.360] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:07:03Z", "value" => "0"} [2026-07-13 06:57:13.383] [DEBUG] QUERY OK db=22.9ms idle=6.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:07:03Z", "0", "cpu", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.384] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404584, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:07:03Z", message: "CPU usage percentage", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.384] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:07:03Z", "value" => "1.0.0"} [2026-07-13 06:57:13.398] [DEBUG] QUERY OK db=14.1ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:07:03Z", "1.0.0", "parameter_config", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.399] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404585, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:07:03Z", message: "Current parameters version", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.399] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:07:03Z", "value" => "1.0.1"} [2026-07-13 06:57:13.424] [DEBUG] QUERY OK db=24.6ms idle=16.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:07:03Z", "1.0.1", "emv_config", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.424] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404586, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:07:03Z", message: "Current EMV config version", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.425] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:07:03Z", "value" => ""} [2026-07-13 06:57:13.489] [DEBUG] QUERY OK db=22.5ms queue=41.5ms idle=26.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:07:03Z", "keys_config", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.489] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404587, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:07:03Z", message: "Current keys config version", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.489] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:07:03Z", "value" => "1.0.0"} [2026-07-13 06:57:13.507] [DEBUG] QUERY OK db=17.0ms idle=65.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:07:03Z", "1.0.0", "application", 47051, ~N[2026-07-13 06:57:13], ~N[2026-07-13 06:57:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:13.507] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404588, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:07:03Z", message: "Current application version", status_log_id: 47051, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:13], updated_at: ~N[2026-07-13 06:57:13]}} [2026-07-13 06:57:13.514] [DEBUG] QUERY OK source="tms_terminals" db=6.6ms idle=18.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:57:13], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 06:57:13.523] [WARN ] Unexpected async result [2026-07-13 06:57:13.523] [WARN ] Unexpected async result [2026-07-13 06:57:25.217] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 06:57:25.217] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:07:15Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:07:15Z","value":"33"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:07:15Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:07:15Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:07:15Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:07:15Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:07:15Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:07:15Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:07:15Z","vendor":"MoreFun"} [2026-07-13 06:57:25.218] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:07:15Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:07:15Z", "value" => "33"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:07:15Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:07:15Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:07:15Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:07:15Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:07:15Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:07:15Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:07:15Z", "vendor" => "MoreFun"} [2026-07-13 06:57:25.218] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 06:57:25.219] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 06:57:25.219] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 06:57:25.221] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms queue=0.1ms idle=670.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:57:25.222] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=436.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 06:57:25.223] [DEBUG] QUERY OK source="parameter_template_values" db=0.8ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:57:25.226] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=1.1ms idle=1.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:57:25.228] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms queue=0.1ms idle=3.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 06:57:25.267] [DEBUG] QUERY OK source="pos_merchant" db=38.5ms idle=2.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 06:57:25.269] [DEBUG] QUERY OK db=0.8ms queue=0.6ms idle=478.5ms 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 ["501983400000000"] [2026-07-13 06:57:25.269] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 06:57:25.270] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 06:57:25.271] [DEBUG] QUERY OK source="address" db=0.3ms queue=0.1ms idle=3.6ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 06:57:25.271] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 06:57:25.272] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 06:57:25.292] [DEBUG] QUERY OK db=18.0ms idle=3.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "60a680196045e116a746a426282f69f87b0f5c12c4500c7a152a746b532e6325", 836, 915, ~U[2026-07-13 06:57:25Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 06:57:25.292] [INFO ] AutoPushService: Created push log 33491 for MF919 params.zip [2026-07-13 06:57:25.292] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 836, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 06:57:25.292] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:57:25.292] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 06:57:25.296] [DEBUG] QUERY OK source="config_file_versions" db=3.2ms idle=22.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 06:57:25.301] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 06:57:25.330] [DEBUG] QUERY OK db=27.5ms idle=11.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "dfd68670b0b0c0ad10623185bbfba741485cb98a1249e97f2ac2a25d7bec5995", 6082, 17947, ~U[2026-07-13 06:57:25Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 06:57:25.331] [INFO ] AutoPushService: Created push log 33492 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 06:57:25.331] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 6082, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 06:57:25.331] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:57:25.331] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 06:57:25.334] [DEBUG] QUERY OK source="config_file_versions" db=2.9ms idle=35.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 06:57:25.335] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 06:57:25.336] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=4.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 06:57:25.336] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 06:57:25.338] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 06:57:25.338] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:57:25.338] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:57:25.340] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:57:25.341] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:57:25.341] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 06:57:25.343] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=5.1ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:57:25.343] [INFO ] Terminal updated: 98250623730001 [2026-07-13 06:57:25.367] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms idle=3.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 06:57:25], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:57:25.369] [DEBUG] QUERY OK source="parameter_templates" db=1.9ms idle=24.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 06:57:25.371] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=3.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:57:25.372] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:57:25.372] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 06:57:25.392] [DEBUG] QUERY OK source="parameter_push_logs" db=19.0ms idle=1.5ms 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 [19, "application", ~N[2026-07-13 06:27:25]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 06:57:25.392] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 06:57:25.392] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 06:57:25.393] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=20.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 06:57:25.394] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:57:25.395] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:57:25.396] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=2.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:57:25.408] [DEBUG] QUERY OK source="tms_terminals" db=11.1ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:57:25], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:57:25.446] [DEBUG] QUERY OK db=37.1ms idle=12.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:07:15Z", ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:57:25.446] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47052, oid: "organization_id", upload_time: "2026-07-12T22:07:15Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]} [2026-07-13 06:57:25.447] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:07:15Z", "value" => "online"} [2026-07-13 06:57:25.481] [DEBUG] QUERY OK db=33.8ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:07:15Z", "online", "status", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.482] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404589, itemkey: "status", value: "online", timestamp: "2026-07-12T22:07:15Z", message: "Terminal status update", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.482] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 06:57:25.482] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:07:15Z", "value" => "33"} [2026-07-13 06:57:25.504] [DEBUG] QUERY OK db=22.0ms idle=36.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:07:15Z", "33", "battery", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.505] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404590, itemkey: "battery", value: "33", timestamp: "2026-07-12T22:07:15Z", message: "Battery level", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.505] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:07:15Z", "value" => "online"} [2026-07-13 06:57:25.519] [DEBUG] QUERY OK db=13.3ms idle=24.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:07:15Z", "online", "network", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.519] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404591, itemkey: "network", value: "online", timestamp: "2026-07-12T22:07:15Z", message: "Network connectivity", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.519] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 06:57:25.520] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:07:15Z", "value" => "0"} [2026-07-13 06:57:25.556] [DEBUG] QUERY OK db=35.3ms queue=0.1ms idle=16.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:07:15Z", "0", "cpu", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.556] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404592, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:07:15Z", message: "CPU usage percentage", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.556] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:07:15Z", "value" => "1.0.0"} [2026-07-13 06:57:25.580] [DEBUG] QUERY OK db=23.1ms idle=5.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:07:15Z", "1.0.0", "parameter_config", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404593, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:07:15Z", message: "Current parameters version", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.582] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:07:15Z", "value" => "1.0.1"} [2026-07-13 06:57:25.611] [DEBUG] QUERY OK db=28.7ms queue=0.1ms idle=26.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:07:15Z", "1.0.1", "emv_config", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.611] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404594, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:07:15Z", message: "Current EMV config version", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.611] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:07:15Z", "value" => ""} [2026-07-13 06:57:25.666] [DEBUG] QUERY OK db=13.8ms queue=40.6ms idle=31.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:07:15Z", "keys_config", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.667] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404595, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:07:15Z", message: "Current keys config version", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.667] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:07:15Z", "value" => "1.0.0"} [2026-07-13 06:57:25.691] [DEBUG] QUERY OK db=23.3ms idle=56.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:07:15Z", "1.0.0", "application", 47052, ~N[2026-07-13 06:57:25], ~N[2026-07-13 06:57:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:25.691] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404596, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:07:15Z", message: "Current application version", status_log_id: 47052, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:25], updated_at: ~N[2026-07-13 06:57:25]}} [2026-07-13 06:57:25.691] [WARN ] Unexpected async result [2026-07-13 06:57:25.691] [WARN ] Unexpected async result [2026-07-13 06:57:48.917] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 06:57:48.917] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:07:39Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:07:39Z","value":"32"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:07:39Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:07:39Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:07:39Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:07:39Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:07:39Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:07:39Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:07:39Z","vendor":"MoreFun"} [2026-07-13 06:57:48.917] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:07:39Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:07:39Z", "value" => "32"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:07:39Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:07:39Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:07:39Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:07:39Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:07:39Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:07:39Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:07:39Z", "vendor" => "MoreFun"} [2026-07-13 06:57:48.917] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 06:57:48.917] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 06:57:48.917] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 06:57:48.918] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=296.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:57:48.920] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=128.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 06:57:48.921] [DEBUG] QUERY OK source="parameter_template_values" db=1.5ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:57:48.924] [DEBUG] QUERY OK source="parameter_definitions" db=1.3ms queue=0.7ms idle=2.8ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:57:48.925] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=2.8ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 06:57:48.966] [DEBUG] QUERY OK source="pos_merchant" db=40.9ms idle=1.1ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 06:57:48.969] [DEBUG] QUERY OK db=0.6ms queue=2.2ms idle=176.1ms 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 ["501983400000000"] [2026-07-13 06:57:48.969] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 06:57:48.970] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms idle=44.7ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 06:57:48.971] [DEBUG] QUERY OK source="address" db=0.3ms idle=4.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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 06:57:48.971] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 06:57:48.973] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 06:57:49.004] [DEBUG] QUERY OK db=29.6ms idle=3.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "77af759ef0dfe2d3ed58db3fcad041db124507e0656ab054027c52d96aaf0f6c", 6242, 915, ~U[2026-07-13 06:57:48Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 06:57:48], ~N[2026-07-13 06:57:48]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 06:57:49.004] [INFO ] AutoPushService: Created push log 33493 for MF919 params.zip [2026-07-13 06:57:49.005] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 6242, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 06:57:49.005] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:57:49.005] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 06:57:49.009] [DEBUG] QUERY OK source="config_file_versions" db=3.1ms idle=35.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 06:57:49.013] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 06:57:49.047] [DEBUG] QUERY OK db=31.4ms idle=12.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "98aa81cb47265f84c0c957bc625198b464b1a925aa39b52c2e7bf699d1832ecd", 6306, 17947, ~U[2026-07-13 06:57:49Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 06:57:49.047] [INFO ] AutoPushService: Created push log 33494 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 06:57:49.047] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 6306, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 06:57:49.048] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:57:49.048] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 06:57:49.051] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=39.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 06:57:49.051] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 06:57:49.051] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 06:57:49.051] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 06:57:49.053] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 06:57:49.053] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:57:49.054] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:57:49.057] [DEBUG] QUERY OK source="config_file_versions" db=2.7ms idle=3.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:57:49.057] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:57:49.058] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 06:57:49.059] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=6.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:57:49.061] [INFO ] Terminal updated: 98250623730001 [2026-07-13 06:57:49.074] [DEBUG] QUERY OK source="tms_terminals" db=12.3ms idle=4.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 06:57:49], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:57:49.075] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=15.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 06:57:49.077] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:57:49.078] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=2.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:57:49.078] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 06:57:49.098] [DEBUG] QUERY OK source="parameter_push_logs" db=19.2ms idle=1.2ms 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 [19, "application", ~N[2026-07-13 06:27:49]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 06:57:49.098] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 06:57:49.098] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 06:57:49.099] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=20.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 06:57:49.101] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:57:49.102] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:57:49.102] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:57:49.122] [DEBUG] QUERY OK source="tms_terminals" db=19.5ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:57:49], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:57:49.158] [DEBUG] QUERY OK db=27.9ms queue=7.8ms idle=20.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:07:39Z", ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:57:49.159] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47053, oid: "organization_id", upload_time: "2026-07-12T22:07:39Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]} [2026-07-13 06:57:49.159] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:07:39Z", "value" => "online"} [2026-07-13 06:57:49.201] [DEBUG] QUERY OK db=41.7ms idle=36.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:07:39Z", "online", "status", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.201] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404597, itemkey: "status", value: "online", timestamp: "2026-07-12T22:07:39Z", message: "Terminal status update", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.201] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 06:57:49.202] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:07:39Z", "value" => "32"} [2026-07-13 06:57:49.244] [DEBUG] QUERY OK db=41.6ms idle=43.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:07:39Z", "32", "battery", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.244] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404598, itemkey: "battery", value: "32", timestamp: "2026-07-12T22:07:39Z", message: "Battery level", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.244] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:07:39Z", "value" => "online"} [2026-07-13 06:57:49.284] [DEBUG] QUERY OK db=39.0ms idle=43.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:07:39Z", "online", "network", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.284] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404599, itemkey: "network", value: "online", timestamp: "2026-07-12T22:07:39Z", message: "Network connectivity", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.284] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 06:57:49.284] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:07:39Z", "value" => "0"} [2026-07-13 06:57:49.307] [DEBUG] QUERY OK db=21.8ms decode=0.1ms idle=40.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:07:39Z", "0", "cpu", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.307] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404600, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:07:39Z", message: "CPU usage percentage", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.307] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:07:39Z", "value" => "1.0.0"} [2026-07-13 06:57:49.343] [DEBUG] QUERY OK db=32.5ms queue=1.6ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:07:39Z", "1.0.0", "parameter_config", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.344] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404601, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:07:39Z", message: "Current parameters version", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.344] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:07:39Z", "value" => "1.0.1"} [2026-07-13 06:57:49.376] [DEBUG] QUERY OK db=30.7ms idle=38.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:07:39Z", "1.0.1", "emv_config", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.376] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404602, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:07:39Z", message: "Current EMV config version", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.376] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:07:39Z", "value" => ""} [2026-07-13 06:57:49.388] [DEBUG] QUERY OK db=11.5ms idle=33.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:07:39Z", "keys_config", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.389] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404603, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:07:39Z", message: "Current keys config version", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.389] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:07:39Z", "value" => "1.0.0"} [2026-07-13 06:57:49.412] [DEBUG] QUERY OK db=23.2ms idle=13.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:07:39Z", "1.0.0", "application", 47053, ~N[2026-07-13 06:57:49], ~N[2026-07-13 06:57:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:57:49.413] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404604, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:07:39Z", message: "Current application version", status_log_id: 47053, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:57:49], updated_at: ~N[2026-07-13 06:57:49]}} [2026-07-13 06:57:49.413] [WARN ] Unexpected async result [2026-07-13 06:57:49.413] [WARN ] Unexpected async result [2026-07-13 06:58:57.842] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 06:58:57.843] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:08:48Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:08:48Z","value":"31"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:08:48Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:08:48Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:08:48Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:08:48Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:08:48Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:08:48Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:08:48Z","vendor":"MoreFun"} [2026-07-13 06:58:57.844] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:08:48Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:08:48Z", "value" => "31"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:08:48Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:08:48Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:08:48Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:08:48Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:08:48Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:08:48Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:08:48Z", "vendor" => "MoreFun"} [2026-07-13 06:58:57.844] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 06:58:57.845] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 06:58:57.845] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 06:58:57.846] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=1000.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:58:57.847] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=0.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 06:58:57.850] [DEBUG] QUERY OK source="parameter_template_values" db=2.9ms idle=0.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:58:57.853] [DEBUG] QUERY OK source="parameter_definitions" db=0.9ms queue=0.4ms idle=2.8ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:58:57.855] [DEBUG] QUERY OK source="pos_terminal" db=1.3ms idle=3.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 06:58:57.897] [DEBUG] QUERY OK source="pos_merchant" db=42.1ms queue=0.3ms idle=2.1ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 06:58:57.899] [DEBUG] QUERY OK db=0.7ms queue=0.8ms idle=1098.7ms 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 ["501983400000000"] [2026-07-13 06:58:57.899] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 06:58:57.901] [DEBUG] QUERY OK source="pos_terminal_data" db=1.6ms idle=45.0ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 06:58:57.902] [DEBUG] QUERY OK source="address" db=0.7ms queue=0.1ms idle=4.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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 06:58:57.902] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 06:58:57.904] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 06:58:57.949] [DEBUG] QUERY OK db=42.5ms queue=1.2ms idle=4.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "3636fccafe3d05ee0bcae31206d6a47314cecd4c50ee03b50b54198150546516", 1060, 915, ~U[2026-07-13 06:58:57Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 06:58:57], ~N[2026-07-13 06:58:57]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 06:58:57.949] [INFO ] AutoPushService: Created push log 33495 for MF919 params.zip [2026-07-13 06:58:57.950] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1060, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 06:58:57.950] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:58:57.950] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 06:58:57.952] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=47.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 06:58:57.957] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 06:58:57.974] [DEBUG] QUERY OK db=13.1ms queue=1.1ms idle=11.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "cb1667c313ab65baba47c237b4f10a8c29ab3b17b2706cac86eeeb379d9d859a", 1124, 17947, ~U[2026-07-13 06:58:57Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 06:58:57], ~N[2026-07-13 06:58:57]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 06:58:57.974] [INFO ] AutoPushService: Created push log 33496 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 06:58:57.975] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 1124, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 06:58:57.975] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:58:57.975] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 06:58:57.976] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=23.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 06:58:57.976] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 06:58:57.977] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 06:58:57.977] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 06:58:57.978] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 06:58:57.978] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:58:57.978] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:58:57.979] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:58:57.980] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:58:57.980] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 06:58:57.982] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms idle=3.1ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:58:57.983] [INFO ] Terminal updated: 98250623730001 [2026-07-13 06:58:57.997] [DEBUG] QUERY OK source="tms_terminals" db=14.4ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 06:58:57], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:58:57.999] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms queue=0.3ms idle=15.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 06:58:58.001] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=3.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:58:58.003] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=1.4ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:58:58.004] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 06:58:58.046] [DEBUG] QUERY OK source="parameter_push_logs" db=41.8ms idle=3.0ms 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 [19, "application", ~N[2026-07-13 06:28:58]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 06:58:58.046] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 06:58:58.046] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 06:58:58.047] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=43.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 06:58:58.049] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:58:58.050] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:58:58.051] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:58:58.076] [DEBUG] QUERY OK source="tms_terminals" db=25.5ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:58:58], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:58:58.101] [DEBUG] QUERY OK db=23.3ms queue=0.5ms idle=26.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:08:48Z", ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:58:58.101] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47054, oid: "organization_id", upload_time: "2026-07-12T22:08:48Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]} [2026-07-13 06:58:58.101] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:08:48Z", "value" => "online"} [2026-07-13 06:58:58.121] [DEBUG] QUERY OK db=19.1ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:08:48Z", "online", "status", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.121] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404605, itemkey: "status", value: "online", timestamp: "2026-07-12T22:08:48Z", message: "Terminal status update", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.121] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 06:58:58.121] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:08:48Z", "value" => "31"} [2026-07-13 06:58:58.141] [DEBUG] QUERY OK db=19.6ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:08:48Z", "31", "battery", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404606, itemkey: "battery", value: "31", timestamp: "2026-07-12T22:08:48Z", message: "Battery level", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.142] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:08:48Z", "value" => "online"} [2026-07-13 06:58:58.178] [DEBUG] QUERY OK db=35.5ms queue=0.4ms idle=21.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:08:48Z", "online", "network", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.178] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404607, itemkey: "network", value: "online", timestamp: "2026-07-12T22:08:48Z", message: "Network connectivity", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.178] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 06:58:58.179] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:08:48Z", "value" => "0"} [2026-07-13 06:58:58.225] [DEBUG] QUERY OK db=45.9ms idle=38.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:08:48Z", "0", "cpu", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.226] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404608, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:08:48Z", message: "CPU usage percentage", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.226] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:08:48Z", "value" => "1.0.0"} [2026-07-13 06:58:58.266] [DEBUG] QUERY OK db=39.6ms idle=48.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:08:48Z", "1.0.0", "parameter_config", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.266] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404609, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:08:48Z", message: "Current parameters version", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.266] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:08:48Z", "value" => "1.0.1"} [2026-07-13 06:58:58.321] [DEBUG] QUERY OK db=54.2ms idle=41.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:08:48Z", "1.0.1", "emv_config", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.321] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404610, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:08:48Z", message: "Current EMV config version", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.322] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:08:48Z", "value" => ""} [2026-07-13 06:58:58.349] [DEBUG] QUERY OK db=23.8ms queue=2.5ms idle=56.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:08:48Z", "keys_config", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.349] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404611, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:08:48Z", message: "Current keys config version", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.349] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:08:48Z", "value" => "1.0.0"} [2026-07-13 06:58:58.380] [DEBUG] QUERY OK db=30.2ms idle=28.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:08:48Z", "1.0.0", "application", 47054, ~N[2026-07-13 06:58:58], ~N[2026-07-13 06:58:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:58:58.381] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404612, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:08:48Z", message: "Current application version", status_log_id: 47054, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:58:58], updated_at: ~N[2026-07-13 06:58:58]}} [2026-07-13 06:58:58.381] [WARN ] Unexpected async result [2026-07-13 06:58:58.381] [WARN ] Unexpected async result [2026-07-13 06:59:34.894] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 06:59:34.894] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:09:25Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:09:25Z","value":"31"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:09:25Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:09:25Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:09:25Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:09:25Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:09:25Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:09:25Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:09:25Z","vendor":"MoreFun"} [2026-07-13 06:59:34.895] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:09:25Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:09:25Z", "value" => "31"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:09:25Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:09:25Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:09:25Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:09:25Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:09:25Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:09:25Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:09:25Z", "vendor" => "MoreFun"} [2026-07-13 06:59:34.895] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 06:59:34.895] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 06:59:34.895] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 06:59:34.897] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.2ms idle=1096.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:59:34.898] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=893.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 06:59:34.899] [DEBUG] QUERY OK source="parameter_template_values" db=0.5ms idle=1.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:59:34.901] [DEBUG] QUERY OK source="parameter_definitions" db=1.4ms queue=0.4ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:59:34.902] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms idle=2.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 06:59:34.942] [DEBUG] QUERY OK source="pos_merchant" db=39.2ms idle=1.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 06:59:34.944] [DEBUG] QUERY OK db=0.8ms queue=1.6ms idle=1142.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 ["501983400000000"] [2026-07-13 06:59:34.944] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 06:59:34.946] [DEBUG] QUERY OK source="pos_terminal_data" db=0.8ms idle=43.1ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 06:59:34.948] [DEBUG] QUERY OK source="address" db=1.4ms idle=4.7ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 06:59:34.948] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 06:59:34.950] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 06:59:34.979] [DEBUG] QUERY OK db=26.4ms idle=6.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "57effab206233586b733cc036e5937c5b4b32273900d8f49172429b3e2a60df8", 6498, 915, ~U[2026-07-13 06:59:34Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 06:59:34], ~N[2026-07-13 06:59:34]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 06:59:34.979] [INFO ] AutoPushService: Created push log 33497 for MF919 params.zip [2026-07-13 06:59:34.979] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 6498, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 06:59:34.980] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:59:34.980] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 06:59:34.984] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms idle=32.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 06:59:34.989] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 06:59:35.019] [DEBUG] QUERY OK db=28.6ms idle=11.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "337c94293f6a68d1145d10b4b64e480bcb1e5a37f7319dd31c1d6318254f703e", 6562, 17947, ~U[2026-07-13 06:59:34Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 06:59:34], ~N[2026-07-13 06:59:34]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 06:59:35.020] [INFO ] AutoPushService: Created push log 33498 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 06:59:35.020] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 6562, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 06:59:35.020] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:59:35.020] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 06:59:35.023] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=15.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 06:59:35.024] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 06:59:35.026] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=5.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 06:59:35.026] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 06:59:35.029] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 06:59:35.029] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:59:35.029] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:59:35.031] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=6.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:59:35.031] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:59:35.031] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 06:59:35.032] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=5.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:59:35.032] [INFO ] Terminal updated: 98250623730001 [2026-07-13 06:59:35.058] [DEBUG] QUERY OK source="tms_terminals" db=25.6ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 06:59:35], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:59:35.059] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=26.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 06:59:35.061] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:59:35.061] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:59:35.061] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 06:59:35.107] [DEBUG] QUERY OK source="parameter_push_logs" db=44.9ms idle=1.0ms 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 [19, "application", ~N[2026-07-13 06:29:35]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 06:59:35.107] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 06:59:35.107] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 06:59:35.108] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=45.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 06:59:35.109] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=2.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:59:35.110] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:59:35.111] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.2ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:59:35.133] [DEBUG] QUERY OK source="tms_terminals" db=22.5ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:59:35], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:59:35.161] [DEBUG] QUERY OK db=27.3ms idle=23.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:09:25Z", ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:59:35.161] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47055, oid: "organization_id", upload_time: "2026-07-12T22:09:25Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]} [2026-07-13 06:59:35.162] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:09:25Z", "value" => "online"} [2026-07-13 06:59:35.192] [DEBUG] QUERY OK db=30.0ms idle=28.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:09:25Z", "online", "status", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.192] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404613, itemkey: "status", value: "online", timestamp: "2026-07-12T22:09:25Z", message: "Terminal status update", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.192] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 06:59:35.193] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:09:25Z", "value" => "31"} [2026-07-13 06:59:35.226] [DEBUG] QUERY OK db=33.2ms idle=31.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:09:25Z", "31", "battery", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.227] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404614, itemkey: "battery", value: "31", timestamp: "2026-07-12T22:09:25Z", message: "Battery level", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.227] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:09:25Z", "value" => "online"} [2026-07-13 06:59:35.272] [DEBUG] QUERY OK db=43.9ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:09:25Z", "online", "network", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.273] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404615, itemkey: "network", value: "online", timestamp: "2026-07-12T22:09:25Z", message: "Network connectivity", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.273] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 06:59:35.273] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:09:25Z", "value" => "0"} [2026-07-13 06:59:35.320] [DEBUG] QUERY OK db=47.3ms idle=46.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:09:25Z", "0", "cpu", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.321] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404616, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:09:25Z", message: "CPU usage percentage", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.321] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:09:25Z", "value" => "1.0.0"} [2026-07-13 06:59:35.359] [DEBUG] QUERY OK db=38.0ms idle=49.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:09:25Z", "1.0.0", "parameter_config", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.360] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404617, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:09:25Z", message: "Current parameters version", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.360] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:09:25Z", "value" => "1.0.1"} [2026-07-13 06:59:35.441] [DEBUG] QUERY OK db=81.0ms idle=39.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:09:25Z", "1.0.1", "emv_config", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.442] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404618, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:09:25Z", message: "Current EMV config version", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.442] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:09:25Z", "value" => ""} [2026-07-13 06:59:35.473] [DEBUG] QUERY OK db=30.3ms idle=83.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:09:25Z", "keys_config", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.473] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404619, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:09:25Z", message: "Current keys config version", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.473] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:09:25Z", "value" => "1.0.0"} [2026-07-13 06:59:35.497] [DEBUG] QUERY OK db=22.9ms idle=32.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:09:25Z", "1.0.0", "application", 47055, ~N[2026-07-13 06:59:35], ~N[2026-07-13 06:59:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:35.497] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404620, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:09:25Z", message: "Current application version", status_log_id: 47055, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:35], updated_at: ~N[2026-07-13 06:59:35]}} [2026-07-13 06:59:35.498] [WARN ] Unexpected async result [2026-07-13 06:59:35.498] [WARN ] Unexpected async result [2026-07-13 06:59:46.241] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 06:59:46.241] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:09:36Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:09:36Z","value":"31"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:09:36Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:09:36Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:09:36Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:09:36Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:09:36Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:09:36Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:09:36Z","vendor":"MoreFun"} [2026-07-13 06:59:46.242] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:09:36Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:09:36Z", "value" => "31"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:09:36Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:09:36Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:09:36Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:09:36Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:09:36Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:09:36Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:09:36Z", "vendor" => "MoreFun"} [2026-07-13 06:59:46.242] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 06:59:46.243] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 06:59:46.243] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 06:59:46.244] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=442.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 06:59:46.245] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=203.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 06:59:46.246] [DEBUG] QUERY OK source="parameter_template_values" db=0.5ms idle=1.7ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:59:46.249] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.6ms idle=1.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 06:59:46.250] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms idle=3.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 06:59:46.290] [DEBUG] QUERY OK source="pos_merchant" db=39.6ms idle=1.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 06:59:46.293] [DEBUG] QUERY OK db=1.1ms queue=2.3ms idle=1491.1ms 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 ["501983400000000"] [2026-07-13 06:59:46.294] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 06:59:46.294] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms queue=0.1ms idle=43.9ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 06:59:46.295] [DEBUG] QUERY OK source="address" db=0.7ms idle=4.9ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 06:59:46.295] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 06:59:46.298] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 06:59:46.315] [DEBUG] QUERY OK db=14.6ms idle=6.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "296cd6047ae7e89eba387d6893f94b1c887c1c22e57990a0b87fe11220710086", 6658, 915, ~U[2026-07-13 06:59:46Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 06:59:46.315] [INFO ] AutoPushService: Created push log 33499 for MF919 params.zip [2026-07-13 06:59:46.316] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 6658, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 06:59:46.316] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:59:46.316] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 06:59:46.317] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms idle=20.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 06:59:46.322] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 06:59:46.351] [DEBUG] QUERY OK db=28.4ms idle=7.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "cd595b73802bea08a981833a537e62e05ba62c5c6dca5519c47d4c0bdf25eb6d", 6722, 17947, ~U[2026-07-13 06:59:46Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 06:59:46.351] [INFO ] AutoPushService: Created push log 33500 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 06:59:46.352] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 6722, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 06:59:46.352] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 06:59:46.352] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 06:59:46.353] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=34.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 06:59:46.353] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 06:59:46.354] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 06:59:46.354] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 06:59:46.355] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 06:59:46.356] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:59:46.356] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 06:59:46.357] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=3.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:59:46.357] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:59:46.357] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 06:59:46.359] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=3.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 06:59:46.359] [INFO ] Terminal updated: 98250623730001 [2026-07-13 06:59:46.387] [DEBUG] QUERY OK source="tms_terminals" db=27.1ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 06:59:46], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 06:59:46.388] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=28.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 06:59:46.389] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:59:46.390] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 06:59:46.390] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 06:59:46.413] [DEBUG] QUERY OK source="parameter_push_logs" db=20.3ms queue=0.2ms idle=2.2ms 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 [19, "application", ~N[2026-07-13 06:29:46]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 06:59:46.413] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 06:59:46.413] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 06:59:46.414] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=22.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 06:59:46.416] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms queue=0.1ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 06:59:46.416] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 06:59:46.417] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=2.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 06:59:46.429] [DEBUG] QUERY OK source="tms_terminals" db=11.7ms idle=1.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 06:59:46], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 06:59:46.459] [DEBUG] QUERY OK db=29.8ms queue=0.1ms idle=12.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:09:36Z", ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 06:59:46.460] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47056, oid: "organization_id", upload_time: "2026-07-12T22:09:36Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]} [2026-07-13 06:59:46.460] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:09:36Z", "value" => "online"} [2026-07-13 06:59:46.484] [DEBUG] QUERY OK db=23.5ms idle=31.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:09:36Z", "online", "status", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.484] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404621, itemkey: "status", value: "online", timestamp: "2026-07-12T22:09:36Z", message: "Terminal status update", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.484] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 06:59:46.484] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:09:36Z", "value" => "31"} [2026-07-13 06:59:46.507] [DEBUG] QUERY OK db=22.1ms idle=25.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:09:36Z", "31", "battery", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.509] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404622, itemkey: "battery", value: "31", timestamp: "2026-07-12T22:09:36Z", message: "Battery level", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.510] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:09:36Z", "value" => "online"} [2026-07-13 06:59:46.530] [DEBUG] QUERY OK db=19.6ms idle=26.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:09:36Z", "online", "network", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.530] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404623, itemkey: "network", value: "online", timestamp: "2026-07-12T22:09:36Z", message: "Network connectivity", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.530] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 06:59:46.530] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:09:36Z", "value" => "0"} [2026-07-13 06:59:46.555] [DEBUG] QUERY OK db=24.5ms idle=23.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:09:36Z", "0", "cpu", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.555] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404624, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:09:36Z", message: "CPU usage percentage", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.556] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:09:36Z", "value" => "1.0.0"} [2026-07-13 06:59:46.585] [DEBUG] QUERY OK db=28.4ms queue=0.1ms idle=26.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:09:36Z", "1.0.0", "parameter_config", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.585] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404625, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:09:36Z", message: "Current parameters version", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.585] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:09:36Z", "value" => "1.0.1"} [2026-07-13 06:59:46.610] [DEBUG] QUERY OK db=23.9ms idle=30.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:09:36Z", "1.0.1", "emv_config", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.610] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404626, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:09:36Z", message: "Current EMV config version", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.610] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:09:36Z", "value" => ""} [2026-07-13 06:59:46.625] [DEBUG] QUERY OK db=14.3ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:09:36Z", "keys_config", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.625] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404627, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:09:36Z", message: "Current keys config version", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.625] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:09:36Z", "value" => "1.0.0"} [2026-07-13 06:59:46.641] [DEBUG] QUERY OK db=14.7ms queue=0.1ms idle=16.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:09:36Z", "1.0.0", "application", 47056, ~N[2026-07-13 06:59:46], ~N[2026-07-13 06:59:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 06:59:46.641] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404628, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:09:36Z", message: "Current application version", status_log_id: 47056, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 06:59:46], updated_at: ~N[2026-07-13 06:59:46]}} [2026-07-13 06:59:46.641] [WARN ] Unexpected async result [2026-07-13 06:59:46.641] [WARN ] Unexpected async result [2026-07-13 07:00:00.386] [INFO ] [Ysp.Scheduler] 07:00 AM — enqueuing Settlement MIS generation for yesterday [2026-07-13 07:00:00.398] [INFO ] [Ysp.Scheduler] Next MIS generation in 24h 0m [2026-07-13 07:00:15.324] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 07:00:15.325] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1017.5ms 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-07-13 07:00:15.326] [DEBUG] QUERY OK source="filter_usage" db=0.8ms idle=138.1ms 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-07-13 07:00:15.326] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 07:00:15.740] [INFO ] Running offline device check... [2026-07-13 07:00:15.741] [INFO ] Starting offline device check... [2026-07-13 07:00:15.742] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=416.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:00:15.752] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.8ms idle=416.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.765] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.768] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.769] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.770] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.776] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.782] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.796] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.800] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms queue=0.1ms idle=13.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.802] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.825] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=20.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.829] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.846] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.848] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.848] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.859] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=11.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.863] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.865] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.873] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms queue=0.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.875] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.878] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.882] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.884] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.891] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.6ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.893] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.7ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:00:15.893] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:00:15.894] [INFO ] Offline device check completed successfully [2026-07-13 07:01:09.610] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:01:09.611] [INFO ] Incoming JSON payload: {"oid":"bd16f4b2-2d65-4251-bcf7-bd14f3ebbd83","sn":"98251226730001","uploadTime":"2026-07-13T15:04:23Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"ram_free_mb","value":"961","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:04:23Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:01:09.615] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "bd16f4b2-2d65-4251-bcf7-bd14f3ebbd83", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:04:23Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:04:23Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:04:23Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:04:23Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:04:23Z", "value" => "961"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:04:23Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:04:23Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:04:23Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:04:23Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:04:23Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:04:23Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:04:23Z", "vendor" => "morefun"} [2026-07-13 07:01:09.615] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:01:09.615] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:01:09.616] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:01:09.618] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms queue=0.4ms idle=793.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:01:09.619] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.2ms idle=193.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:01:09.619] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:01:09.621] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=1.7ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:01:09.621] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:01:09.635] [DEBUG] QUERY OK source="tms_terminals" db=12.8ms queue=0.5ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:01:09], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:01:09.635] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:01:09.641] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=19.3ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:01:09.653] [DEBUG] QUERY OK source="tms_terminals" db=11.4ms idle=6.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:01:09], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:01:09.687] [DEBUG] QUERY OK db=32.3ms queue=0.1ms idle=13.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "bd16f4b2-2d65-4251-bcf7-bd14f3ebbd83", "2026-07-13T15:04:23Z", ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:01:09.687] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47057, oid: "bd16f4b2-2d65-4251-bcf7-bd14f3ebbd83", upload_time: "2026-07-13T15:04:23Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]} [2026-07-13 07:01:09.687] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:04:23Z", "value" => "morefun"} [2026-07-13 07:01:09.751] [DEBUG] QUERY OK db=21.7ms queue=42.2ms idle=34.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "morefun", "vendor", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.753] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404629, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.753] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:04:23Z", "value" => "kiosk_launcher"} [2026-07-13 07:01:09.815] [DEBUG] QUERY OK db=21.0ms queue=40.6ms idle=67.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "kiosk_launcher", "model", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.816] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404630, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.816] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:04:23Z", "value" => "1.0"} [2026-07-13 07:01:09.833] [DEBUG] QUERY OK db=16.6ms queue=0.1ms idle=64.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "1.0", "app_version", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.833] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404631, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.833] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:04:23Z", "value" => "13"} [2026-07-13 07:01:09.848] [DEBUG] QUERY OK db=14.1ms idle=18.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "13", "android_version", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404632, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.848] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:04:23Z", "value" => "961"} [2026-07-13 07:01:09.889] [DEBUG] QUERY OK db=39.9ms idle=15.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "961", "ram_free_mb", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.889] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404633, itemkey: "ram_free_mb", value: "961", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.889] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:04:23Z", "value" => "WIFI"} [2026-07-13 07:01:09.913] [DEBUG] QUERY OK db=21.5ms idle=43.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "WIFI", "network_type", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.913] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404634, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.914] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:04:23Z", "value" => "true"} [2026-07-13 07:01:09.930] [DEBUG] QUERY OK db=16.3ms idle=25.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "true", "kiosk_active", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.932] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404635, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.932] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:04:23Z", "value" => ""} [2026-07-13 07:01:09.958] [DEBUG] QUERY OK db=24.3ms queue=0.5ms idle=19.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:04:23Z", "sim_operator", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.960] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404636, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.960] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"} [2026-07-13 07:01:09.991] [DEBUG] QUERY OK db=27.8ms idle=33.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "UNKNOWN", "sim_number", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:09.992] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404637, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:09.992] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"} [2026-07-13 07:01:10.014] [DEBUG] QUERY OK db=16.8ms idle=39.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "UNKNOWN", "sim_iccid", 47057, ~N[2026-07-13 07:01:09], ~N[2026-07-13 07:01:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.014] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404638, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:09], updated_at: ~N[2026-07-13 07:01:09]}} [2026-07-13 07:01:10.015] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"} [2026-07-13 07:01:10.031] [DEBUG] QUERY OK db=16.3ms idle=23.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "UNKNOWN", "sim_imsi", 47057, ~N[2026-07-13 07:01:10], ~N[2026-07-13 07:01:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.033] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404639, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:10], updated_at: ~N[2026-07-13 07:01:10]}} [2026-07-13 07:01:10.033] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"} [2026-07-13 07:01:10.064] [DEBUG] QUERY OK db=30.7ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "UNKNOWN", "sim_iccid2", 47057, ~N[2026-07-13 07:01:10], ~N[2026-07-13 07:01:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.065] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404640, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:10], updated_at: ~N[2026-07-13 07:01:10]}} [2026-07-13 07:01:10.065] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:04:23Z", "value" => "UNKNOWN"} [2026-07-13 07:01:10.097] [DEBUG] QUERY OK db=29.8ms queue=1.5ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "UNKNOWN", "sim_imsi2", 47057, ~N[2026-07-13 07:01:10], ~N[2026-07-13 07:01:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.097] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404641, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:10], updated_at: ~N[2026-07-13 07:01:10]}} [2026-07-13 07:01:10.097] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:04:23Z", "value" => "1"} [2026-07-13 07:01:10.109] [DEBUG] QUERY OK db=11.5ms idle=33.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "1", "data_usage_mb", 47057, ~N[2026-07-13 07:01:10], ~N[2026-07-13 07:01:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.109] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404642, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:10], updated_at: ~N[2026-07-13 07:01:10]}} [2026-07-13 07:01:10.112] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:04:23Z", "value" => "0"} [2026-07-13 07:01:10.130] [DEBUG] QUERY OK db=17.7ms idle=15.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "0", "mobile_data_mb", 47057, ~N[2026-07-13 07:01:10], ~N[2026-07-13 07:01:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.130] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404643, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:10], updated_at: ~N[2026-07-13 07:01:10]}} [2026-07-13 07:01:10.131] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:04:23Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:01:10.179] [DEBUG] QUERY OK db=45.4ms idle=23.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:23Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47057, ~N[2026-07-13 07:01:10], ~N[2026-07-13 07:01:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:10.186] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404644, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:04:23Z", message: nil, status_log_id: 47057, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:10], updated_at: ~N[2026-07-13 07:01:10]}} [2026-07-13 07:01:39.701] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:01:39.701] [INFO ] Incoming JSON payload: {"oid":"8589fbaa-bfec-4fc9-a703-8ea3d6fed883","sn":"98251226730001","uploadTime":"2026-07-13T15:04:54Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"ram_free_mb","value":"959","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:04:54Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:01:39.702] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "8589fbaa-bfec-4fc9-a703-8ea3d6fed883", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:04:54Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:04:54Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:04:54Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:04:54Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:04:54Z", "value" => "959"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:04:54Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:04:54Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:04:54Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:04:54Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:04:54Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:04:54Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:04:54Z", "vendor" => "morefun"} [2026-07-13 07:01:39.702] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:01:39.702] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:01:39.702] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:01:39.704] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=870.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:01:39.705] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=179.9ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:01:39.705] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:01:39.706] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:01:39.707] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:01:39.731] [DEBUG] QUERY OK source="tms_terminals" db=23.9ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:01:39], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:01:39.731] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:01:39.733] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=25.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:01:39.758] [DEBUG] QUERY OK source="tms_terminals" db=24.5ms decode=0.1ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:01:39], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:01:39.773] [DEBUG] QUERY OK db=14.7ms idle=25.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "8589fbaa-bfec-4fc9-a703-8ea3d6fed883", "2026-07-13T15:04:54Z", ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:01:39.774] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47058, oid: "8589fbaa-bfec-4fc9-a703-8ea3d6fed883", upload_time: "2026-07-13T15:04:54Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]} [2026-07-13 07:01:39.774] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:04:54Z", "value" => "morefun"} [2026-07-13 07:01:39.791] [DEBUG] QUERY OK db=16.8ms queue=0.2ms idle=16.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "morefun", "vendor", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.791] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404645, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.792] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:04:54Z", "value" => "kiosk_launcher"} [2026-07-13 07:01:39.824] [DEBUG] QUERY OK db=31.8ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "kiosk_launcher", "model", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.824] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404646, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.825] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:04:54Z", "value" => "1.0"} [2026-07-13 07:01:39.847] [DEBUG] QUERY OK db=22.2ms idle=33.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "1.0", "app_version", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.847] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404647, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.848] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:04:54Z", "value" => "13"} [2026-07-13 07:01:39.861] [DEBUG] QUERY OK db=13.2ms queue=0.1ms idle=23.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "13", "android_version", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.862] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404648, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.862] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:04:54Z", "value" => "959"} [2026-07-13 07:01:39.875] [DEBUG] QUERY OK db=13.1ms idle=15.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "959", "ram_free_mb", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.876] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404649, itemkey: "ram_free_mb", value: "959", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.876] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:04:54Z", "value" => "WIFI"} [2026-07-13 07:01:39.915] [DEBUG] QUERY OK db=39.0ms idle=14.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "WIFI", "network_type", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.915] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404650, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.915] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:04:54Z", "value" => "true"} [2026-07-13 07:01:39.950] [DEBUG] QUERY OK db=34.5ms idle=40.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "true", "kiosk_active", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.951] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404651, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.952] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:04:54Z", "value" => ""} [2026-07-13 07:01:39.967] [DEBUG] QUERY OK db=14.8ms idle=36.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:04:54Z", "sim_operator", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.967] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404652, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.967] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"} [2026-07-13 07:01:39.982] [DEBUG] QUERY OK db=14.0ms idle=17.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "UNKNOWN", "sim_number", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:39.982] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404653, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:39.982] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"} [2026-07-13 07:01:40.023] [DEBUG] QUERY OK db=38.5ms queue=2.2ms idle=15.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "UNKNOWN", "sim_iccid", 47058, ~N[2026-07-13 07:01:39], ~N[2026-07-13 07:01:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.024] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404654, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:39], updated_at: ~N[2026-07-13 07:01:39]}} [2026-07-13 07:01:40.024] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"} [2026-07-13 07:01:40.050] [DEBUG] QUERY OK db=21.6ms idle=46.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "UNKNOWN", "sim_imsi", 47058, ~N[2026-07-13 07:01:40], ~N[2026-07-13 07:01:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.051] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404655, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:40], updated_at: ~N[2026-07-13 07:01:40]}} [2026-07-13 07:01:40.051] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"} [2026-07-13 07:01:40.072] [DEBUG] QUERY OK db=16.6ms queue=0.1ms idle=31.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "UNKNOWN", "sim_iccid2", 47058, ~N[2026-07-13 07:01:40], ~N[2026-07-13 07:01:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.072] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404656, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:40], updated_at: ~N[2026-07-13 07:01:40]}} [2026-07-13 07:01:40.072] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:04:54Z", "value" => "UNKNOWN"} [2026-07-13 07:01:40.095] [DEBUG] QUERY OK db=22.9ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "UNKNOWN", "sim_imsi2", 47058, ~N[2026-07-13 07:01:40], ~N[2026-07-13 07:01:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.096] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404657, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:40], updated_at: ~N[2026-07-13 07:01:40]}} [2026-07-13 07:01:40.096] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:04:54Z", "value" => "1"} [2026-07-13 07:01:40.129] [DEBUG] QUERY OK db=33.2ms idle=24.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "1", "data_usage_mb", 47058, ~N[2026-07-13 07:01:40], ~N[2026-07-13 07:01:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.132] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404658, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:40], updated_at: ~N[2026-07-13 07:01:40]}} [2026-07-13 07:01:40.132] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:04:54Z", "value" => "0"} [2026-07-13 07:01:40.153] [DEBUG] QUERY OK db=19.7ms idle=37.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "0", "mobile_data_mb", 47058, ~N[2026-07-13 07:01:40], ~N[2026-07-13 07:01:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.153] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404659, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:40], updated_at: ~N[2026-07-13 07:01:40]}} [2026-07-13 07:01:40.153] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:04:54Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:01:40.170] [DEBUG] QUERY OK db=15.7ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:04:54Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47058, ~N[2026-07-13 07:01:40], ~N[2026-07-13 07:01:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:01:40.171] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404660, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:04:54Z", message: nil, status_log_id: 47058, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:01:40], updated_at: ~N[2026-07-13 07:01:40]}} [2026-07-13 07:03:04.573] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:03:04.573] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:12:54Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:12:54Z","value":"31"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:12:54Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:12:54Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:12:54Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:12:54Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:12:54Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:12:54Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:12:54Z","vendor":"MoreFun"} [2026-07-13 07:03:04.574] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:12:54Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:12:54Z", "value" => "31"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:12:54Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:12:54Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:12:54Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:12:54Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:12:54Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:12:54Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:12:54Z", "vendor" => "MoreFun"} [2026-07-13 07:03:04.574] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:03:04.574] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:03:04.574] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:03:04.576] [DEBUG] QUERY OK source="parameter_templates" db=2.2ms idle=1728.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:03:04.577] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=754.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:03:04.579] [DEBUG] QUERY OK source="parameter_template_values" db=1.6ms idle=1.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:03:04.588] [DEBUG] QUERY OK source="parameter_definitions" db=5.8ms queue=2.8ms idle=2.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:03:04.594] [DEBUG] QUERY OK source="pos_terminal" db=4.7ms idle=9.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:03:04.632] [DEBUG] QUERY OK source="pos_merchant" db=37.1ms queue=0.1ms idle=5.9ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:03:04.634] [DEBUG] QUERY OK db=0.7ms queue=1.5ms idle=1793.7ms 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 ["501983400000000"] [2026-07-13 07:03:04.634] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:03:04.636] [DEBUG] QUERY OK source="pos_terminal_data" db=1.7ms idle=40.5ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:03:04.641] [DEBUG] QUERY OK source="address" db=4.2ms idle=4.9ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:03:04.641] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:03:04.646] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:03:04.677] [DEBUG] QUERY OK db=28.5ms idle=12.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "d709be6ec2e86c953772cd3ef608bb3abaee7f716c6b00bff60a63dd8d48e8de", 1187, 915, ~U[2026-07-13 07:03:04Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:03:04], ~N[2026-07-13 07:03:04]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:03:04.678] [INFO ] AutoPushService: Created push log 33501 for MF919 params.zip [2026-07-13 07:03:04.678] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1187, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:03:04.678] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:03:04.679] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:03:04.681] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms queue=0.1ms idle=39.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:03:04.685] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:03:04.721] [DEBUG] QUERY OK db=35.2ms idle=8.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "50ac8beb804da6cc7d27f395e2f2c960d044cf3a865757374dea64ecbc323112", 1284, 17947, ~U[2026-07-13 07:03:04Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:03:04], ~N[2026-07-13 07:03:04]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:03:04.721] [INFO ] AutoPushService: Created push log 33502 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:03:04.722] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 1284, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:03:04.722] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:03:04.722] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:03:04.728] [DEBUG] QUERY OK source="config_file_versions" db=5.0ms idle=42.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:03:04.729] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:03:04.731] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=7.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:03:04.732] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:03:04.733] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:03:04.733] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:03:04.733] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:03:04.737] [DEBUG] QUERY OK source="config_file_versions" db=3.2ms idle=4.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:03:04.738] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:03:04.738] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:03:04.743] [DEBUG] QUERY OK source="tms_terminals" db=4.7ms idle=6.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:03:04.743] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:03:04.767] [DEBUG] QUERY OK source="tms_terminals" db=23.2ms idle=6.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:03:04], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:03:04.770] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=26.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:03:04.778] [DEBUG] QUERY OK source="config_file_versions" db=6.8ms idle=4.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:03:04.781] [DEBUG] QUERY OK source="config_file_versions" db=2.4ms idle=7.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:03:04.781] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:03:04.943] [DEBUG] QUERY OK source="parameter_push_logs" db=162.1ms idle=3.4ms 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 [19, "application", ~N[2026-07-13 06:33:04]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:03:04.944] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:03:04.945] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:03:04.946] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=107.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:03:04.948] [DEBUG] QUERY OK source="config_file_versions" db=1.7ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:03:04.953] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:03:04.954] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.3ms idle=7.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:03:04.997] [DEBUG] QUERY OK source="tms_terminals" db=42.4ms idle=6.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:03:04], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:03:05.033] [DEBUG] QUERY OK db=34.3ms queue=1.1ms idle=43.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:12:54Z", ~N[2026-07-13 07:03:04], ~N[2026-07-13 07:03:04]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:03:05.034] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47059, oid: "organization_id", upload_time: "2026-07-12T22:12:54Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:04], updated_at: ~N[2026-07-13 07:03:04]} [2026-07-13 07:03:05.034] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:12:54Z", "value" => "online"} [2026-07-13 07:03:05.051] [DEBUG] QUERY OK db=17.1ms idle=36.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:12:54Z", "online", "status", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404661, itemkey: "status", value: "online", timestamp: "2026-07-12T22:12:54Z", message: "Terminal status update", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.052] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:03:05.052] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:12:54Z", "value" => "31"} [2026-07-13 07:03:05.083] [DEBUG] QUERY OK db=31.0ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:12:54Z", "31", "battery", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.083] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404662, itemkey: "battery", value: "31", timestamp: "2026-07-12T22:12:54Z", message: "Battery level", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.084] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:12:54Z", "value" => "online"} [2026-07-13 07:03:05.121] [DEBUG] QUERY OK db=37.4ms idle=32.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:12:54Z", "online", "network", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.122] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404663, itemkey: "network", value: "online", timestamp: "2026-07-12T22:12:54Z", message: "Network connectivity", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.122] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:03:05.122] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:12:54Z", "value" => "0"} [2026-07-13 07:03:05.147] [DEBUG] QUERY OK db=25.0ms idle=39.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:12:54Z", "0", "cpu", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.148] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404664, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:12:54Z", message: "CPU usage percentage", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.148] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:12:54Z", "value" => "1.0.0"} [2026-07-13 07:03:05.159] [DEBUG] QUERY OK db=10.7ms idle=26.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:12:54Z", "1.0.0", "parameter_config", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.159] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404665, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:12:54Z", message: "Current parameters version", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.159] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:12:54Z", "value" => "1.0.1"} [2026-07-13 07:03:05.175] [DEBUG] QUERY OK db=15.2ms idle=12.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:12:54Z", "1.0.1", "emv_config", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.175] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404666, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:12:54Z", message: "Current EMV config version", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.175] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:12:54Z", "value" => ""} [2026-07-13 07:03:05.249] [DEBUG] QUERY OK db=29.9ms queue=43.3ms idle=16.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:12:54Z", "keys_config", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.249] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404667, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:12:54Z", message: "Current keys config version", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.250] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:12:54Z", "value" => "1.0.0"} [2026-07-13 07:03:05.280] [DEBUG] QUERY OK db=28.1ms idle=76.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:12:54Z", "1.0.0", "application", 47059, ~N[2026-07-13 07:03:05], ~N[2026-07-13 07:03:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:03:05.281] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404668, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:12:54Z", message: "Current application version", status_log_id: 47059, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:03:05], updated_at: ~N[2026-07-13 07:03:05]}} [2026-07-13 07:03:05.282] [WARN ] Unexpected async result [2026-07-13 07:03:05.282] [WARN ] Unexpected async result [2026-07-13 07:05:15.894] [INFO ] Running offline device check... [2026-07-13 07:05:15.895] [INFO ] Starting offline device check... [2026-07-13 07:05:15.900] [DEBUG] QUERY OK source="tms_terminals" db=4.8ms idle=611.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:05:15.920] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.8ms idle=40.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.0ms queue=1.6ms idle=20.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=23.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.947] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.948] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.950] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.951] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.954] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.960] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.968] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.972] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.990] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.3ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.996] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=19.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:15.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.003] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.004] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.031] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=25.8ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.034] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=27.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.037] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.054] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=15.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.056] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=11.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.074] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.076] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.077] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.085] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.086] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.087] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.089] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.090] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.091] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.097] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:05:16.097] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:05:16.097] [INFO ] Offline device check completed successfully [2026-07-13 07:06:38.045] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:06:38.045] [INFO ] Incoming JSON payload: {"oid":"60d52ce2-7f77-4ce2-815a-5617c2782551","sn":"98251226730001","uploadTime":"2026-07-13T15:09:52Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"ram_free_mb","value":"958","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:09:52Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:06:38.047] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "60d52ce2-7f77-4ce2-815a-5617c2782551", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:09:52Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:09:52Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:09:52Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:09:52Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:09:52Z", "value" => "958"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:09:52Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:09:52Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:09:52Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:09:52Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:09:52Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:09:52Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:09:52Z", "vendor" => "morefun"} [2026-07-13 07:06:38.047] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:06:38.052] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:06:38.052] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:06:38.053] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=513.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:06:38.054] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=178.0ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:06:38.054] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:06:38.055] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:06:38.055] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:06:38.069] [DEBUG] QUERY OK source="tms_terminals" db=14.1ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:06:38], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:06:38.069] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:06:38.070] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=15.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:06:38.085] [DEBUG] QUERY OK source="tms_terminals" db=13.8ms queue=0.1ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:06:38], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:06:38.102] [DEBUG] QUERY OK db=16.8ms idle=14.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "60d52ce2-7f77-4ce2-815a-5617c2782551", "2026-07-13T15:09:52Z", ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:06:38.102] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47060, oid: "60d52ce2-7f77-4ce2-815a-5617c2782551", upload_time: "2026-07-13T15:09:52Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]} [2026-07-13 07:06:38.102] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:09:52Z", "value" => "morefun"} [2026-07-13 07:06:38.127] [DEBUG] QUERY OK db=24.1ms idle=17.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "morefun", "vendor", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.128] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404669, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.128] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:09:52Z", "value" => "kiosk_launcher"} [2026-07-13 07:06:38.189] [DEBUG] QUERY OK db=19.5ms queue=40.9ms idle=26.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "kiosk_launcher", "model", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.189] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404670, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.189] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:09:52Z", "value" => "1.0"} [2026-07-13 07:06:38.203] [DEBUG] QUERY OK db=12.7ms queue=0.1ms idle=63.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "1.0", "app_version", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.204] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404671, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.204] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:09:52Z", "value" => "13"} [2026-07-13 07:06:38.230] [DEBUG] QUERY OK db=25.7ms idle=15.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "13", "android_version", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.230] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404672, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.231] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:09:52Z", "value" => "958"} [2026-07-13 07:06:38.253] [DEBUG] QUERY OK db=21.6ms idle=27.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "958", "ram_free_mb", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.253] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404673, itemkey: "ram_free_mb", value: "958", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.253] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:09:52Z", "value" => "WIFI"} [2026-07-13 07:06:38.281] [DEBUG] QUERY OK db=27.7ms idle=23.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "WIFI", "network_type", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.282] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404674, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.282] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:09:52Z", "value" => "true"} [2026-07-13 07:06:38.361] [DEBUG] QUERY OK db=79.0ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "true", "kiosk_active", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.362] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404675, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.362] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:09:52Z", "value" => ""} [2026-07-13 07:06:38.415] [DEBUG] QUERY OK db=49.9ms queue=0.9ms idle=81.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:09:52Z", "sim_operator", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.415] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404676, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.415] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"} [2026-07-13 07:06:38.434] [DEBUG] QUERY OK db=18.3ms queue=0.1ms idle=54.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "UNKNOWN", "sim_number", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.434] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404677, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.434] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"} [2026-07-13 07:06:38.447] [DEBUG] QUERY OK db=12.1ms idle=21.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "UNKNOWN", "sim_iccid", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.447] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404678, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.448] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"} [2026-07-13 07:06:38.472] [DEBUG] QUERY OK db=23.4ms idle=14.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "UNKNOWN", "sim_imsi", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.472] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404679, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.474] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"} [2026-07-13 07:06:38.509] [DEBUG] QUERY OK db=35.1ms idle=27.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "UNKNOWN", "sim_iccid2", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.510] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404680, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.510] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:09:52Z", "value" => "UNKNOWN"} [2026-07-13 07:06:38.529] [DEBUG] QUERY OK db=18.0ms queue=0.4ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "UNKNOWN", "sim_imsi2", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.530] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404681, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.530] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:09:52Z", "value" => "1"} [2026-07-13 07:06:38.547] [DEBUG] QUERY OK db=16.5ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "1", "data_usage_mb", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.547] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404682, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.547] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:09:52Z", "value" => "0"} [2026-07-13 07:06:38.583] [DEBUG] QUERY OK db=34.2ms idle=7.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "0", "mobile_data_mb", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.583] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404683, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:06:38.585] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:09:52Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:06:38.622] [DEBUG] QUERY OK db=34.7ms queue=0.1ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:09:52Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47060, ~N[2026-07-13 07:06:38], ~N[2026-07-13 07:06:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:06:38.624] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404684, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:09:52Z", message: nil, status_log_id: 47060, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:06:38], updated_at: ~N[2026-07-13 07:06:38]}} [2026-07-13 07:08:44.273] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:08:44.273] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:18:34Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:18:34Z","value":"29"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:18:34Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:18:34Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:18:34Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:18:34Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:18:34Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:18:34Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:18:34Z","vendor":"MoreFun"} [2026-07-13 07:08:44.274] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:18:34Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:18:34Z", "value" => "29"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:18:34Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:18:34Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:18:34Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:18:34Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:18:34Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:18:34Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:18:34Z", "vendor" => "MoreFun"} [2026-07-13 07:08:44.274] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:08:44.274] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:08:44.274] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:08:44.278] [DEBUG] QUERY OK source="parameter_templates" db=4.0ms queue=0.1ms idle=1184.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:08:44.281] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.4ms idle=187.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:08:44.283] [DEBUG] QUERY OK source="parameter_template_values" db=1.8ms idle=2.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:08:44.290] [DEBUG] QUERY OK source="parameter_definitions" db=0.9ms queue=5.4ms idle=3.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:08:44.291] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms idle=8.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:08:44.331] [DEBUG] QUERY OK source="pos_merchant" db=39.6ms idle=1.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:08:44.333] [DEBUG] QUERY OK db=0.8ms queue=0.6ms idle=445.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 ["501983400000000"] [2026-07-13 07:08:44.333] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:08:44.334] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms idle=42.2ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:08:44.337] [DEBUG] QUERY OK source="address" db=1.9ms idle=3.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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:08:44.337] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:08:44.340] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:08:44.391] [DEBUG] QUERY OK db=47.3ms idle=9.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c69b613b6aea9022aa7b6cef888646b1c89638286aebdc629375834ca60ea579", 7234, 916, ~U[2026-07-13 07:08:44Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:08:44], ~N[2026-07-13 07:08:44]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:08:44.392] [INFO ] AutoPushService: Created push log 33503 for MF919 params.zip [2026-07-13 07:08:44.392] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 7234, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:08:44.392] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:08:44.392] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:08:44.396] [DEBUG] QUERY OK source="config_file_versions" db=3.2ms idle=55.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:08:44.408] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:08:44.500] [DEBUG] QUERY OK db=90.1ms idle=18.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "7e54e31ab94fd3da04e2612e54b894c05663b23985129ac59b3e60911ea7a9bd", 7298, 17947, ~U[2026-07-13 07:08:44Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:08:44], ~N[2026-07-13 07:08:44]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:08:44.501] [INFO ] AutoPushService: Created push log 33504 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:08:44.501] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 7298, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:08:44.501] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:08:44.501] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:08:44.502] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms idle=106.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:08:44.503] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:08:44.503] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:08:44.503] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:08:44.505] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:08:44.506] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:08:44.506] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:08:44.507] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=3.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:08:44.507] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:08:44.507] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:08:44.510] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=5.7ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:08:44.511] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:08:44.582] [DEBUG] QUERY OK source="tms_terminals" db=70.8ms idle=3.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:08:44], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:08:44.583] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=72.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:08:44.583] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:08:44.584] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=0.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:08:44.585] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:08:44.639] [DEBUG] QUERY OK source="parameter_push_logs" db=53.3ms idle=1.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 [19, "application", ~N[2026-07-13 06:38:44]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:08:44.639] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:08:44.639] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:08:44.640] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=54.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:08:44.643] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms idle=1.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:08:44.643] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:08:44.644] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:08:44.706] [DEBUG] QUERY OK source="tms_terminals" db=61.6ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:08:44], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:08:44.787] [DEBUG] QUERY OK db=80.8ms idle=62.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:18:34Z", ~N[2026-07-13 07:08:44], ~N[2026-07-13 07:08:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:08:44.788] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47061, oid: "organization_id", upload_time: "2026-07-12T22:18:34Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:44], updated_at: ~N[2026-07-13 07:08:44]} [2026-07-13 07:08:44.788] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:18:34Z", "value" => "online"} [2026-07-13 07:08:44.843] [DEBUG] QUERY OK db=55.0ms idle=81.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:18:34Z", "online", "status", 47061, ~N[2026-07-13 07:08:44], ~N[2026-07-13 07:08:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:44.843] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404685, itemkey: "status", value: "online", timestamp: "2026-07-12T22:18:34Z", message: "Terminal status update", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:44], updated_at: ~N[2026-07-13 07:08:44]}} [2026-07-13 07:08:44.844] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:08:44.844] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:18:34Z", "value" => "29"} [2026-07-13 07:08:44.947] [DEBUG] QUERY OK db=102.3ms queue=0.1ms idle=56.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:18:34Z", "29", "battery", 47061, ~N[2026-07-13 07:08:44], ~N[2026-07-13 07:08:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:44.947] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404686, itemkey: "battery", value: "29", timestamp: "2026-07-12T22:18:34Z", message: "Battery level", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:44], updated_at: ~N[2026-07-13 07:08:44]}} [2026-07-13 07:08:44.947] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:18:34Z", "value" => "online"} [2026-07-13 07:08:45.170] [DEBUG] QUERY OK db=222.8ms idle=104.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:18:34Z", "online", "network", 47061, ~N[2026-07-13 07:08:44], ~N[2026-07-13 07:08:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:45.170] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404687, itemkey: "network", value: "online", timestamp: "2026-07-12T22:18:34Z", message: "Network connectivity", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:44], updated_at: ~N[2026-07-13 07:08:44]}} [2026-07-13 07:08:45.170] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:08:45.173] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:18:34Z", "value" => "0"} [2026-07-13 07:08:45.222] [DEBUG] QUERY OK db=45.3ms queue=0.1ms idle=82.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:18:34Z", "0", "cpu", 47061, ~N[2026-07-13 07:08:45], ~N[2026-07-13 07:08:45]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:45.223] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404688, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:18:34Z", message: "CPU usage percentage", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:45], updated_at: ~N[2026-07-13 07:08:45]}} [2026-07-13 07:08:45.223] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:18:34Z", "value" => "1.0.0"} [2026-07-13 07:08:45.308] [DEBUG] QUERY OK db=82.7ms idle=55.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:18:34Z", "1.0.0", "parameter_config", 47061, ~N[2026-07-13 07:08:45], ~N[2026-07-13 07:08:45]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:45.308] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404689, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:18:34Z", message: "Current parameters version", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:45], updated_at: ~N[2026-07-13 07:08:45]}} [2026-07-13 07:08:45.308] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:18:34Z", "value" => "1.0.1"} [2026-07-13 07:08:45.516] [DEBUG] QUERY OK db=206.9ms idle=86.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:18:34Z", "1.0.1", "emv_config", 47061, ~N[2026-07-13 07:08:45], ~N[2026-07-13 07:08:45]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:45.516] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404690, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:18:34Z", message: "Current EMV config version", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:45], updated_at: ~N[2026-07-13 07:08:45]}} [2026-07-13 07:08:45.516] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:18:34Z", "value" => ""} [2026-07-13 07:08:45.689] [DEBUG] QUERY OK db=170.0ms queue=2.8ms idle=208.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:18:34Z", "keys_config", 47061, ~N[2026-07-13 07:08:45], ~N[2026-07-13 07:08:45]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:45.689] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404691, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:18:34Z", message: "Current keys config version", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:45], updated_at: ~N[2026-07-13 07:08:45]}} [2026-07-13 07:08:45.690] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:18:34Z", "value" => "1.0.0"} [2026-07-13 07:08:45.976] [DEBUG] QUERY OK db=286.4ms idle=174.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:18:34Z", "1.0.0", "application", 47061, ~N[2026-07-13 07:08:45], ~N[2026-07-13 07:08:45]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:08:45.977] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404692, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:18:34Z", message: "Current application version", status_log_id: 47061, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:08:45], updated_at: ~N[2026-07-13 07:08:45]}} [2026-07-13 07:08:45.978] [WARN ] Unexpected async result [2026-07-13 07:08:45.978] [WARN ] Unexpected async result [2026-07-13 07:09:01.149] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:09:01.149] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:18:51Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:18:51Z","value":"28"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:18:51Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:18:51Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:18:51Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:18:51Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:18:51Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:18:51Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:18:51Z","vendor":"MoreFun"} [2026-07-13 07:09:01.150] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:18:51Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:18:51Z", "value" => "28"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:18:51Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:18:51Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:18:51Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:18:51Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:18:51Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:18:51Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:18:51Z", "vendor" => "MoreFun"} [2026-07-13 07:09:01.150] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:09:01.150] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:09:01.151] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:09:01.153] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=156.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:09:01.154] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=11.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:09:01.155] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:01.158] [DEBUG] QUERY OK source="parameter_definitions" db=1.1ms queue=0.8ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:01.159] [DEBUG] QUERY OK source="pos_terminal" db=1.1ms idle=2.6ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:09:01.200] [DEBUG] QUERY OK source="pos_merchant" db=40.1ms idle=2.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:09:01.203] [DEBUG] QUERY OK db=1.1ms queue=1.2ms idle=1314.4ms 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 ["501983400000000"] [2026-07-13 07:09:01.203] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:09:01.205] [DEBUG] QUERY OK source="pos_terminal_data" db=1.8ms idle=44.1ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:09:01.206] [DEBUG] QUERY OK source="address" db=0.3ms queue=0.1ms idle=5.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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:09:01.206] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:09:01.209] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:09:01.229] [DEBUG] QUERY OK db=18.4ms idle=4.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "0884b7effb79e50fac34544a616f488ee0937c315fe27e52c2402078586a6f4f", 1476, 916, ~U[2026-07-13 07:09:01Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:09:01.230] [INFO ] AutoPushService: Created push log 33505 for MF919 params.zip [2026-07-13 07:09:01.230] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1476, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:09:01.230] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:09:01.230] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:09:01.235] [DEBUG] QUERY OK source="config_file_versions" db=3.8ms idle=25.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:09:01.242] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:09:01.281] [DEBUG] QUERY OK db=34.9ms idle=17.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "bb8c9a6193ff47e0b97211d2972107ca0a2c0dae4367e0bd49099bfa362e27a9", 1635, 17947, ~U[2026-07-13 07:09:01Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:09:01.281] [INFO ] AutoPushService: Created push log 33506 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:09:01.281] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 1635, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:09:01.281] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:09:01.282] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:09:01.289] [DEBUG] QUERY OK source="config_file_versions" db=6.5ms idle=47.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:09:01.290] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:09:01.293] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=0.6ms idle=10.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:09:01.294] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:09:01.300] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:09:01.300] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:01.300] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:01.303] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms idle=13.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:01.304] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:01.305] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:09:01.308] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=12.2ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:09:01.308] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:09:01.347] [DEBUG] QUERY OK source="tms_terminals" db=37.3ms queue=1.1ms idle=5.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:09:01], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:09:01.349] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=39.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:09:01.351] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=2.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:01.353] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:01.354] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:09:01.381] [DEBUG] QUERY OK source="parameter_push_logs" db=25.4ms idle=4.2ms 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 [19, "application", ~N[2026-07-13 06:39:01]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:09:01.381] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:09:01.381] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:09:01.383] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=28.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:09:01.387] [DEBUG] QUERY OK source="config_file_versions" db=3.7ms idle=2.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:01.388] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:01.389] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.9ms idle=4.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:09:01.401] [DEBUG] QUERY OK source="tms_terminals" db=11.2ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:09:01], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:09:01.422] [DEBUG] QUERY OK db=20.6ms queue=0.1ms idle=11.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:18:51Z", ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:09:01.422] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47062, oid: "organization_id", upload_time: "2026-07-12T22:18:51Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]} [2026-07-13 07:09:01.422] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:18:51Z", "value" => "online"} [2026-07-13 07:09:01.448] [DEBUG] QUERY OK db=24.9ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:18:51Z", "online", "status", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.448] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404693, itemkey: "status", value: "online", timestamp: "2026-07-12T22:18:51Z", message: "Terminal status update", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.448] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:09:01.448] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:18:51Z", "value" => "28"} [2026-07-13 07:09:01.475] [DEBUG] QUERY OK db=26.0ms idle=26.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:18:51Z", "28", "battery", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.475] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404694, itemkey: "battery", value: "28", timestamp: "2026-07-12T22:18:51Z", message: "Battery level", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.477] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:18:51Z", "value" => "online"} [2026-07-13 07:09:01.488] [DEBUG] QUERY OK db=11.1ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:18:51Z", "online", "network", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.489] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404695, itemkey: "network", value: "online", timestamp: "2026-07-12T22:18:51Z", message: "Network connectivity", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.489] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:09:01.489] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:18:51Z", "value" => "0"} [2026-07-13 07:09:01.503] [DEBUG] QUERY OK db=13.8ms idle=14.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:18:51Z", "0", "cpu", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.504] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404696, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:18:51Z", message: "CPU usage percentage", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.504] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:18:51Z", "value" => "1.0.0"} [2026-07-13 07:09:01.532] [DEBUG] QUERY OK db=28.2ms idle=15.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:18:51Z", "1.0.0", "parameter_config", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.533] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404697, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:18:51Z", message: "Current parameters version", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.533] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:18:51Z", "value" => "1.0.1"} [2026-07-13 07:09:01.595] [DEBUG] QUERY OK db=62.0ms idle=29.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:18:51Z", "1.0.1", "emv_config", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.595] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404698, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:18:51Z", message: "Current EMV config version", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.596] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:18:51Z", "value" => ""} [2026-07-13 07:09:01.623] [DEBUG] QUERY OK db=13.9ms idle=76.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:18:51Z", "keys_config", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.623] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404699, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:18:51Z", message: "Current keys config version", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.624] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:18:51Z", "value" => "1.0.0"} [2026-07-13 07:09:01.649] [DEBUG] QUERY OK db=25.2ms idle=28.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:18:51Z", "1.0.0", "application", 47062, ~N[2026-07-13 07:09:01], ~N[2026-07-13 07:09:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:01.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404700, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:18:51Z", message: "Current application version", status_log_id: 47062, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:01], updated_at: ~N[2026-07-13 07:09:01]}} [2026-07-13 07:09:01.650] [WARN ] Unexpected async result [2026-07-13 07:09:01.650] [WARN ] Unexpected async result [2026-07-13 07:09:15.144] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:09:15.144] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:19:05Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:19:05Z","value":"28"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:19:05Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:19:05Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:19:05Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:19:05Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:19:05Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:19:05Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:19:05Z","vendor":"MoreFun"} [2026-07-13 07:09:15.145] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:19:05Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:19:05Z", "value" => "28"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:19:05Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:19:05Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:19:05Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:19:05Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:19:05Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:19:05Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:19:05Z", "vendor" => "MoreFun"} [2026-07-13 07:09:15.145] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:09:15.145] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:09:15.145] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:09:15.148] [DEBUG] QUERY OK source="parameter_templates" db=2.8ms idle=886.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:09:15.154] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.3ms idle=45.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:09:15.157] [DEBUG] QUERY OK source="parameter_template_values" db=0.7ms idle=8.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:15.161] [DEBUG] QUERY OK source="parameter_definitions" db=1.8ms queue=0.5ms idle=5.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:15.166] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms queue=0.1ms idle=7.9ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:09:15.205] [DEBUG] QUERY OK source="pos_merchant" db=36.2ms queue=1.2ms idle=6.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:09:15.207] [DEBUG] QUERY OK db=1.0ms queue=1.3ms idle=1316.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 ["501983400000000"] [2026-07-13 07:09:15.207] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:09:15.208] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:09:15.209] [DEBUG] QUERY OK source="address" db=0.5ms idle=3.9ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:09:15.209] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:09:15.214] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:09:15.237] [DEBUG] QUERY OK db=21.5ms idle=6.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8d3db8603220d7af748a918aec4db855b6518e89808b0574b6f4bf7942e92738", 1540, 916, ~U[2026-07-13 07:09:15Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:09:15.238] [INFO ] AutoPushService: Created push log 33507 for MF919 params.zip [2026-07-13 07:09:15.238] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1540, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:09:15.239] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:09:15.239] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:09:15.240] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms idle=29.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:09:15.247] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:09:15.278] [DEBUG] QUERY OK db=28.6ms idle=12.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "4c518dc02551eaa007aad029582ac3cbc01bfe7f3ae729b34195f37fe73a003d", 1827, 17947, ~U[2026-07-13 07:09:15Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:09:15.278] [INFO ] AutoPushService: Created push log 33508 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:09:15.278] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 1827, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:09:15.278] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:09:15.278] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:09:15.283] [DEBUG] QUERY OK source="config_file_versions" db=4.1ms idle=17.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:09:15.283] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:09:15.285] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=6.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:09:15.286] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:09:15.290] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:09:15.290] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:15.290] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:15.293] [DEBUG] QUERY OK source="config_file_versions" db=2.9ms idle=8.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:15.294] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:15.294] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:09:15.298] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=12.1ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:09:15.298] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:09:15.319] [DEBUG] QUERY OK source="tms_terminals" db=17.4ms queue=0.5ms idle=7.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:09:15], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:09:15.321] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms queue=0.1ms idle=21.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:09:15.323] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:15.326] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=0.2ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:15.326] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:09:15.384] [DEBUG] QUERY OK source="parameter_push_logs" db=57.9ms idle=3.2ms 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 [19, "application", ~N[2026-07-13 06:39:15]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:09:15.384] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:09:15.384] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:09:15.386] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.3ms idle=59.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:09:15.387] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:15.388] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:15.389] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:09:15.410] [DEBUG] QUERY OK source="tms_terminals" db=20.5ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:09:15], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:09:15.427] [DEBUG] QUERY OK db=17.0ms idle=21.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:19:05Z", ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:09:15.428] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47063, oid: "organization_id", upload_time: "2026-07-12T22:19:05Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]} [2026-07-13 07:09:15.428] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:19:05Z", "value" => "online"} [2026-07-13 07:09:15.441] [DEBUG] QUERY OK db=12.6ms idle=18.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:19:05Z", "online", "status", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.441] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404701, itemkey: "status", value: "online", timestamp: "2026-07-12T22:19:05Z", message: "Terminal status update", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.441] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:09:15.441] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:19:05Z", "value" => "28"} [2026-07-13 07:09:15.470] [DEBUG] QUERY OK db=28.0ms idle=14.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:19:05Z", "28", "battery", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.470] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404702, itemkey: "battery", value: "28", timestamp: "2026-07-12T22:19:05Z", message: "Battery level", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.470] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:19:05Z", "value" => "online"} [2026-07-13 07:09:15.501] [DEBUG] QUERY OK db=28.7ms idle=29.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:19:05Z", "online", "network", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.501] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404703, itemkey: "network", value: "online", timestamp: "2026-07-12T22:19:05Z", message: "Network connectivity", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.501] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:09:15.502] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:19:05Z", "value" => "0"} [2026-07-13 07:09:15.520] [DEBUG] QUERY OK db=18.0ms queue=0.6ms idle=32.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:19:05Z", "0", "cpu", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.521] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404704, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:19:05Z", message: "CPU usage percentage", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.521] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:19:05Z", "value" => "1.0.0"} [2026-07-13 07:09:15.535] [DEBUG] QUERY OK db=13.5ms idle=21.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:19:05Z", "1.0.0", "parameter_config", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.535] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404705, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:19:05Z", message: "Current parameters version", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.535] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:19:05Z", "value" => "1.0.1"} [2026-07-13 07:09:15.553] [DEBUG] QUERY OK db=17.3ms idle=15.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:19:05Z", "1.0.1", "emv_config", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.553] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404706, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:19:05Z", message: "Current EMV config version", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.553] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:19:05Z", "value" => ""} [2026-07-13 07:09:15.587] [DEBUG] QUERY OK db=33.4ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:19:05Z", "keys_config", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.587] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404707, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:19:05Z", message: "Current keys config version", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.588] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:19:05Z", "value" => "1.0.0"} [2026-07-13 07:09:15.608] [DEBUG] QUERY OK db=20.1ms idle=34.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:19:05Z", "1.0.0", "application", 47063, ~N[2026-07-13 07:09:15], ~N[2026-07-13 07:09:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:15.610] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404708, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:19:05Z", message: "Current application version", status_log_id: 47063, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:15], updated_at: ~N[2026-07-13 07:09:15]}} [2026-07-13 07:09:15.610] [WARN ] Unexpected async result [2026-07-13 07:09:15.610] [WARN ] Unexpected async result [2026-07-13 07:09:35.783] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:09:35.783] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:19:26Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:19:26Z","value":"28"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:19:26Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:19:26Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:19:26Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:19:26Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:19:26Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:19:26Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:19:26Z","vendor":"MoreFun"} [2026-07-13 07:09:35.783] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:19:26Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:19:26Z", "value" => "28"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:19:26Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:19:26Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:19:26Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:19:26Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:19:26Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:19:26Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:19:26Z", "vendor" => "MoreFun"} [2026-07-13 07:09:35.783] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:09:35.783] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:09:35.783] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:09:35.785] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms idle=881.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:09:35.786] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=463.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:09:35.787] [DEBUG] QUERY OK source="parameter_template_values" db=0.7ms queue=0.1ms idle=1.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:35.790] [DEBUG] QUERY OK source="parameter_definitions" db=1.4ms queue=0.4ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:35.790] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms idle=2.8ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:09:35.831] [DEBUG] QUERY OK source="pos_merchant" db=39.7ms idle=1.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:09:35.833] [DEBUG] QUERY OK db=0.9ms queue=1.0ms idle=938.7ms 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 ["501983400000000"] [2026-07-13 07:09:35.833] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:09:35.836] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms queue=1.3ms idle=43.0ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:09:35.837] [DEBUG] QUERY OK source="address" db=0.4ms idle=5.9ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:09:35.837] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:09:35.839] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:09:35.856] [DEBUG] QUERY OK db=15.1ms idle=4.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "3a79b546db5713793b983c372ac01451f9909e57683fab328c5a42194eddef5a", 1636, 916, ~U[2026-07-13 07:09:35Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:09:35], ~N[2026-07-13 07:09:35]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:09:35.856] [INFO ] AutoPushService: Created push log 33509 for MF919 params.zip [2026-07-13 07:09:35.856] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1636, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:09:35.856] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:09:35.856] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:09:35.858] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=19.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:09:35.867] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:09:35.892] [DEBUG] QUERY OK db=23.6ms idle=12.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "408f2455be8220ac68dc25478975216024528821f9a73a81d71d1b24f570d5d9", 7490, 17947, ~U[2026-07-13 07:09:35Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:09:35], ~N[2026-07-13 07:09:35]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:09:35.893] [INFO ] AutoPushService: Created push log 33510 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:09:35.893] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 7490, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:09:35.893] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:09:35.893] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:09:35.896] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms queue=0.9ms idle=35.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:09:35.896] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:09:35.899] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=4.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:09:35.899] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:09:35.905] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:09:35.906] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:35.907] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:35.909] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms queue=0.7ms idle=11.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:35.911] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:35.911] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:09:35.915] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms queue=0.8ms idle=12.7ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:09:35.916] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:09:35.937] [DEBUG] QUERY OK source="tms_terminals" db=20.0ms idle=8.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:09:35], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:09:35.939] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms idle=23.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:09:35.943] [DEBUG] QUERY OK source="config_file_versions" db=3.1ms idle=2.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:35.945] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:35.945] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:09:35.966] [DEBUG] QUERY OK source="parameter_push_logs" db=21.0ms idle=2.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 [19, "application", ~N[2026-07-13 06:39:35]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:09:35.966] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:09:35.966] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:09:35.970] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=22.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:09:35.970] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=3.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:35.971] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:35.973] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms idle=1.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:09:35.996] [DEBUG] QUERY OK source="tms_terminals" db=22.5ms idle=3.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:09:35], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:09:36.018] [DEBUG] QUERY OK db=21.0ms idle=23.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:19:26Z", ~N[2026-07-13 07:09:35], ~N[2026-07-13 07:09:35]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:09:36.018] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47064, oid: "organization_id", upload_time: "2026-07-12T22:19:26Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:35], updated_at: ~N[2026-07-13 07:09:35]} [2026-07-13 07:09:36.018] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:19:26Z", "value" => "online"} [2026-07-13 07:09:36.041] [DEBUG] QUERY OK db=22.4ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:19:26Z", "online", "status", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.041] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404709, itemkey: "status", value: "online", timestamp: "2026-07-12T22:19:26Z", message: "Terminal status update", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.041] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:09:36.042] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:19:26Z", "value" => "28"} [2026-07-13 07:09:36.066] [DEBUG] QUERY OK db=23.6ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:19:26Z", "28", "battery", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.066] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404710, itemkey: "battery", value: "28", timestamp: "2026-07-12T22:19:26Z", message: "Battery level", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.066] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:19:26Z", "value" => "online"} [2026-07-13 07:09:36.079] [DEBUG] QUERY OK db=12.8ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:19:26Z", "online", "network", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.079] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404711, itemkey: "network", value: "online", timestamp: "2026-07-12T22:19:26Z", message: "Network connectivity", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.080] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:09:36.083] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:19:26Z", "value" => "0"} [2026-07-13 07:09:36.102] [DEBUG] QUERY OK db=16.6ms queue=1.7ms idle=17.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:19:26Z", "0", "cpu", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.102] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404712, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:19:26Z", message: "CPU usage percentage", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.102] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:19:26Z", "value" => "1.0.0"} [2026-07-13 07:09:36.125] [DEBUG] QUERY OK db=22.4ms idle=23.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:19:26Z", "1.0.0", "parameter_config", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.126] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404713, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:19:26Z", message: "Current parameters version", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.126] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:19:26Z", "value" => "1.0.1"} [2026-07-13 07:09:36.150] [DEBUG] QUERY OK db=22.8ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:19:26Z", "1.0.1", "emv_config", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.150] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404714, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:19:26Z", message: "Current EMV config version", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.150] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:19:26Z", "value" => ""} [2026-07-13 07:09:36.167] [DEBUG] QUERY OK db=16.6ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:19:26Z", "keys_config", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.167] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404715, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:19:26Z", message: "Current keys config version", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.167] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:19:26Z", "value" => "1.0.0"} [2026-07-13 07:09:36.178] [DEBUG] QUERY OK db=10.8ms idle=17.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:19:26Z", "1.0.0", "application", 47064, ~N[2026-07-13 07:09:36], ~N[2026-07-13 07:09:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:36.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404716, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:19:26Z", message: "Current application version", status_log_id: 47064, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:36], updated_at: ~N[2026-07-13 07:09:36]}} [2026-07-13 07:09:36.179] [WARN ] Unexpected async result [2026-07-13 07:09:36.179] [WARN ] Unexpected async result [2026-07-13 07:09:40.610] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:09:40.610] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T15:12:55Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T15:12:55Z","value":"60"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T15:12:55Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T15:12:55Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T15:12:55Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T15:12:55Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T15:12:55Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T15:12:55Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T15:12:55Z","vendor":"MoreFun"} [2026-07-13 07:09:40.610] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T15:12:55Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T15:12:55Z", "value" => "60"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T15:12:55Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T15:12:55Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T15:12:55Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T15:12:55Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T15:12:55Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T15:12:55Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:12:55Z", "vendor" => "MoreFun"} [2026-07-13 07:09:40.610] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:09:40.610] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:09:40.610] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 07:09:40.611] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1276.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:09:40.612] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=273.7ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:09:40.613] [DEBUG] QUERY OK source="parameter_template_values" db=0.4ms idle=1.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:40.617] [DEBUG] QUERY OK source="parameter_definitions" db=1.5ms queue=1.9ms idle=1.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:09:40.618] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms idle=4.8ms 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:165 [2026-07-13 07:09:40.659] [DEBUG] QUERY OK source="pos_merchant" db=40.2ms idle=1.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:09:40.660] [DEBUG] QUERY OK db=0.8ms queue=0.6ms idle=1765.0ms 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 ["490603880000000"] [2026-07-13 07:09:40.660] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:09:40.661] [DEBUG] QUERY OK source="pos_terminal_data" db=0.3ms idle=42.4ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:09:40.662] [DEBUG] QUERY OK source="address" db=0.3ms idle=2.6ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:09:40.662] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 07:09:40.664] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 07:09:40.698] [DEBUG] QUERY OK db=32.6ms idle=3.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "96de63dc1eaa9c2da82378e778a454650b9925e6edb5d38bbb7a8a9809a0a95e", 7554, 915, ~U[2026-07-13 07:09:40Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:09:40], ~N[2026-07-13 07:09:40]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:09:40.698] [INFO ] AutoPushService: Created push log 33511 for MF919 params.zip [2026-07-13 07:09:40.698] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 7554, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:09:40.698] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 07:09:40.698] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 07:09:40.699] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=36.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:09:40.705] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:09:40.719] [DEBUG] QUERY OK db=12.7ms idle=9.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c5995526f070bfc5a344b8e2de23f061124ba26b7b404c078aa42c57229bc433", 7618, 17947, ~U[2026-07-13 07:09:40Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:09:40], ~N[2026-07-13 07:09:40]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:09:40.719] [INFO ] AutoPushService: Created push log 33512 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:09:40.720] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 7618, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:09:40.720] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 07:09:40.720] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 07:09:40.722] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=20.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:09:40.722] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 07:09:40.731] [DEBUG] QUERY OK source="tms_terminals" db=8.2ms idle=3.3ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:09:40.737] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:09:40.748] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:09:40.748] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:40.748] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:09:40.749] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=26.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:09:40.753] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:09:40.753] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 07:09:40.760] [DEBUG] QUERY OK source="tms_terminals" db=6.3ms idle=23.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:09:40.824] [DEBUG] QUERY OK source="tms_terminals" db=20.9ms queue=42.2ms idle=11.1ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 07:09:40], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 07:09:40.824] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:09:40.826] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 07:09:40.826] [INFO ] Event published: terminal_updated [2026-07-13 07:09:40.826] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 07:09:40.826] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 07:09:40.833] [DEBUG] QUERY OK source="terminal_group_memberships" db=6.8ms queue=0.1ms idle=65.8ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 07:09:40], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 07:09:40.837] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms queue=0.2ms idle=9.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 07:09:40.840] [DEBUG] QUERY OK source="terminal_group_rules" db=3.1ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 07:09:40.843] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 07:09:40.912] [DEBUG] QUERY OK source="tms_terminals" db=36.0ms queue=42.2ms idle=0.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 07:09:40], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:09:40.915] [DEBUG] QUERY OK source="parameter_templates" db=2.7ms idle=72.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:09:40.917] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:09:40.918] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:09:40.922] [DEBUG] QUERY OK source="tms_terminals" db=3.3ms idle=3.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:09:40.975] [DEBUG] QUERY OK source="tms_terminals" db=11.1ms queue=41.4ms idle=5.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:09:40], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:09:40.985] [DEBUG] QUERY OK db=10.4ms idle=53.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T15:12:55Z", ~N[2026-07-13 07:09:40], ~N[2026-07-13 07:09:40]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:09:40.986] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47065, oid: "organization_id", upload_time: "2026-07-13T15:12:55Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:40], updated_at: ~N[2026-07-13 07:09:40]} [2026-07-13 07:09:40.986] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T15:12:55Z", "value" => "online"} [2026-07-13 07:09:41.007] [DEBUG] QUERY OK db=20.8ms idle=11.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T15:12:55Z", "online", "status", 47065, ~N[2026-07-13 07:09:40], ~N[2026-07-13 07:09:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.007] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404717, itemkey: "status", value: "online", timestamp: "2026-07-13T15:12:55Z", message: "Terminal status update", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:40], updated_at: ~N[2026-07-13 07:09:40]}} [2026-07-13 07:09:41.007] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 07:09:41.008] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T15:12:55Z", "value" => "60"} [2026-07-13 07:09:41.030] [DEBUG] QUERY OK db=22.4ms idle=22.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T15:12:55Z", "60", "battery", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404718, itemkey: "battery", value: "60", timestamp: "2026-07-13T15:12:55Z", message: "Battery level", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.032] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T15:12:55Z", "value" => "online"} [2026-07-13 07:09:41.062] [DEBUG] QUERY OK db=28.9ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T15:12:55Z", "online", "network", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404719, itemkey: "network", value: "online", timestamp: "2026-07-13T15:12:55Z", message: "Network connectivity", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.063] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 07:09:41.064] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T15:12:55Z", "value" => "0"} [2026-07-13 07:09:41.077] [DEBUG] QUERY OK db=12.4ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T15:12:55Z", "0", "cpu", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.077] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404720, itemkey: "cpu", value: "0", timestamp: "2026-07-13T15:12:55Z", message: "CPU usage percentage", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.077] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T15:12:55Z", "value" => "1.0.0"} [2026-07-13 07:09:41.103] [DEBUG] QUERY OK db=25.3ms idle=15.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T15:12:55Z", "1.0.0", "parameter_config", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.104] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404721, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T15:12:55Z", message: "Current parameters version", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.104] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T15:12:55Z", "value" => "1.0.1"} [2026-07-13 07:09:41.136] [DEBUG] QUERY OK db=31.3ms queue=0.8ms idle=27.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T15:12:55Z", "1.0.1", "emv_config", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.137] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404722, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T15:12:55Z", message: "Current EMV config version", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.137] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T15:12:55Z", "value" => ""} [2026-07-13 07:09:41.192] [DEBUG] QUERY OK db=13.1ms queue=40.7ms idle=34.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T15:12:55Z", "keys_config", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.192] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404723, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T15:12:55Z", message: "Current keys config version", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.192] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T15:12:55Z", "value" => ""} [2026-07-13 07:09:41.212] [DEBUG] QUERY OK db=19.8ms idle=56.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T15:12:55Z", "application", 47065, ~N[2026-07-13 07:09:41], ~N[2026-07-13 07:09:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:41.213] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404724, itemkey: "application", value: nil, timestamp: "2026-07-13T15:12:55Z", message: "Current application version", status_log_id: 47065, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:41], updated_at: ~N[2026-07-13 07:09:41]}} [2026-07-13 07:09:41.213] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T15:12:55Z"} [2026-07-13 07:09:41.219] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T15:12:55Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 17, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :up, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{"phoenix_client_piyush" => true}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 07:09:57.761] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:09:57.761] [INFO ] Incoming JSON payload: {"oid":"8bb9056b-08f5-46b5-84e2-250bce909173","sn":"98251226730001","uploadTime":"2026-07-13T15:13:12Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"ram_free_mb","value":"955","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:13:12Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:09:57.762] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "8bb9056b-08f5-46b5-84e2-250bce909173", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:13:12Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:13:12Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:13:12Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:13:12Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:13:12Z", "value" => "955"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:13:12Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:13:12Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:13:12Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:13:12Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:13:12Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:13:12Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:13:12Z", "vendor" => "morefun"} [2026-07-13 07:09:57.763] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:09:57.763] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:09:57.763] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:09:57.767] [DEBUG] QUERY OK source="parameter_templates" db=3.5ms idle=856.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:09:57.767] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=350.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:09:57.768] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:09:57.769] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.7ms idle=1.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:09:57.831] [DEBUG] QUERY OK source="tms_terminals" db=20.9ms queue=40.8ms idle=2.0ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 07:09:57], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 07:09:57.832] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:09:57.832] [INFO ] Event published: terminal_updated [2026-07-13 07:09:57.832] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 07:09:57.833] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 07:09:57.833] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 07:09:57.835] [DEBUG] QUERY OK source="terminal_group_memberships" db=2.7ms idle=62.7ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 07:09:57], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 07:09:57.837] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=3.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 07:09:57.839] [DEBUG] QUERY OK source="terminal_group_rules" db=1.7ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 07:09:57.839] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 07:09:57.889] [DEBUG] QUERY OK source="tms_terminals" db=12.0ms queue=41.2ms idle=0.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 07:09:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:09:57.889] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:09:57.892] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=1.1ms idle=50.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:09:57.957] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms queue=41.0ms idle=3.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:09:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:09:57.982] [DEBUG] QUERY OK db=24.8ms idle=64.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "8bb9056b-08f5-46b5-84e2-250bce909173", "2026-07-13T15:13:12Z", ~N[2026-07-13 07:09:57], ~N[2026-07-13 07:09:57]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:09:57.983] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47066, oid: "8bb9056b-08f5-46b5-84e2-250bce909173", upload_time: "2026-07-13T15:13:12Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:57], updated_at: ~N[2026-07-13 07:09:57]} [2026-07-13 07:09:57.983] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:13:12Z", "value" => "morefun"} [2026-07-13 07:09:58.038] [DEBUG] QUERY OK db=13.4ms queue=40.8ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "morefun", "vendor", 47066, ~N[2026-07-13 07:09:57], ~N[2026-07-13 07:09:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.038] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404725, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:57], updated_at: ~N[2026-07-13 07:09:57]}} [2026-07-13 07:09:58.038] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:13:12Z", "value" => "kiosk_launcher"} [2026-07-13 07:09:58.094] [DEBUG] QUERY OK db=14.1ms queue=40.7ms idle=56.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "kiosk_launcher", "model", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.094] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404726, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.094] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:13:12Z", "value" => "1.0"} [2026-07-13 07:09:58.117] [DEBUG] QUERY OK db=22.8ms idle=56.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "1.0", "app_version", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.117] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404727, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.117] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:13:12Z", "value" => "13"} [2026-07-13 07:09:58.146] [DEBUG] QUERY OK db=28.4ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "13", "android_version", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.147] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404728, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.147] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:13:12Z", "value" => "955"} [2026-07-13 07:09:58.168] [DEBUG] QUERY OK db=20.1ms idle=30.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "955", "ram_free_mb", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.168] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404729, itemkey: "ram_free_mb", value: "955", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.168] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:13:12Z", "value" => "WIFI"} [2026-07-13 07:09:58.183] [DEBUG] QUERY OK db=14.8ms idle=22.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "WIFI", "network_type", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.184] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404730, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.184] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:13:12Z", "value" => "true"} [2026-07-13 07:09:58.205] [DEBUG] QUERY OK db=21.1ms idle=16.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "true", "kiosk_active", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.206] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404731, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.208] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:13:12Z", "value" => ""} [2026-07-13 07:09:58.242] [DEBUG] QUERY OK db=33.1ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:13:12Z", "sim_operator", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.242] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404732, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.242] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"} [2026-07-13 07:09:58.260] [DEBUG] QUERY OK db=17.7ms idle=36.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "UNKNOWN", "sim_number", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.260] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404733, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.261] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"} [2026-07-13 07:09:58.272] [DEBUG] QUERY OK db=11.1ms idle=19.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "UNKNOWN", "sim_iccid", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.272] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404734, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.272] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"} [2026-07-13 07:09:58.284] [DEBUG] QUERY OK db=10.8ms idle=12.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "UNKNOWN", "sim_imsi", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.284] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404735, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.284] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"} [2026-07-13 07:09:58.325] [DEBUG] QUERY OK db=40.7ms idle=12.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "UNKNOWN", "sim_iccid2", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.325] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404736, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.326] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:13:12Z", "value" => "UNKNOWN"} [2026-07-13 07:09:58.352] [DEBUG] QUERY OK db=26.2ms idle=42.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "UNKNOWN", "sim_imsi2", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.352] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404737, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.353] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:13:12Z", "value" => "1"} [2026-07-13 07:09:58.429] [DEBUG] QUERY OK db=76.3ms queue=0.1ms idle=27.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "1", "data_usage_mb", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.430] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404738, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.430] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:13:12Z", "value" => "0"} [2026-07-13 07:09:58.464] [DEBUG] QUERY OK db=33.4ms idle=10.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "0", "mobile_data_mb", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.465] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404739, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:09:58.466] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:13:12Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:09:58.494] [DEBUG] QUERY OK db=25.1ms idle=36.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:12Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47066, ~N[2026-07-13 07:09:58], ~N[2026-07-13 07:09:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:09:58.498] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404740, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:13:12Z", message: nil, status_log_id: 47066, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:09:58], updated_at: ~N[2026-07-13 07:09:58]}} [2026-07-13 07:10:01.010] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T15:12:55Z"} [2026-07-13 07:10:01.011] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T15:12:55Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<58, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 18, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 07:10:02.345] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:10:02.345] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:19:52Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:19:52Z","value":"27"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:19:52Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:19:52Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:19:52Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:19:52Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:19:52Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:19:52Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:19:52Z","vendor":"MoreFun"} [2026-07-13 07:10:02.345] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:19:52Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:19:52Z", "value" => "27"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:19:52Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:19:52Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:19:52Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:19:52Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:19:52Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:19:52Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:19:52Z", "vendor" => "MoreFun"} [2026-07-13 07:10:02.345] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:10:02.345] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:10:02.345] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:10:02.348] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms queue=0.7ms idle=1347.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:10:02.351] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms idle=921.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:10:02.354] [DEBUG] QUERY OK source="parameter_template_values" db=2.8ms idle=3.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:10:02.366] [DEBUG] QUERY OK source="parameter_definitions" db=7.2ms queue=4.4ms idle=5.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:10:02.376] [DEBUG] QUERY OK source="pos_terminal" db=9.5ms idle=12.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:10:02.403] [DEBUG] QUERY OK source="pos_merchant" db=26.2ms idle=15.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:10:02.406] [DEBUG] QUERY OK db=2.6ms queue=0.5ms idle=1506.2ms 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 ["501983400000000"] [2026-07-13 07:10:02.406] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:10:02.410] [DEBUG] QUERY OK source="pos_terminal_data" db=3.6ms idle=30.4ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:10:02.412] [DEBUG] QUERY OK source="address" db=1.1ms idle=7.8ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:10:02.415] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:10:02.418] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:10:02.449] [DEBUG] QUERY OK db=29.6ms idle=9.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "48626d8411ebfafb159a87de181c4a62fef30d258d7db7aebdbe124fcd34b40f", 741, 916, ~U[2026-07-13 07:10:02Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:10:02.450] [INFO ] AutoPushService: Created push log 33513 for MF919 params.zip [2026-07-13 07:10:02.450] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 741, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:10:02.450] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:10:02.456] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:10:02.464] [DEBUG] QUERY OK source="config_file_versions" db=4.0ms queue=3.1ms idle=23.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:10:02.482] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:10:02.503] [DEBUG] QUERY OK db=19.4ms idle=34.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "0b6dcb764d9d076c225ef32a25ea251f95835c70d3d1614de1640bd57e929987", 837, 17947, ~U[2026-07-13 07:10:02Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:10:02.503] [INFO ] AutoPushService: Created push log 33514 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:10:02.503] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 837, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:10:02.503] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:10:02.503] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:10:02.512] [DEBUG] QUERY OK source="config_file_versions" db=8.7ms idle=39.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:10:02.513] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:10:02.515] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=10.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:10:02.515] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:10:02.529] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:10:02.530] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:10:02.530] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:10:02.532] [DEBUG] QUERY OK source="config_file_versions" db=2.1ms idle=17.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:10:02.534] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:10:02.534] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:10:02.540] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms idle=18.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:10:02.541] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:10:02.570] [DEBUG] QUERY OK source="tms_terminals" db=26.6ms queue=0.7ms idle=10.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:10:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:10:02.572] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=33.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:10:02.574] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:10:02.581] [DEBUG] QUERY OK source="config_file_versions" db=6.9ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:10:02.583] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:10:02.617] [DEBUG] QUERY OK source="parameter_push_logs" db=31.7ms idle=11.5ms 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 [19, "application", ~N[2026-07-13 06:40:02]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:10:02.622] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:10:02.622] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:10:02.623] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=41.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:10:02.624] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=6.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:10:02.629] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:10:02.632] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=6.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:10:02.652] [DEBUG] QUERY OK source="tms_terminals" db=20.0ms idle=7.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:10:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:10:02.665] [DEBUG] QUERY OK db=11.9ms idle=20.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:19:52Z", ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:10:02.665] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47067, oid: "organization_id", upload_time: "2026-07-12T22:19:52Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]} [2026-07-13 07:10:02.667] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:19:52Z", "value" => "online"} [2026-07-13 07:10:02.696] [DEBUG] QUERY OK db=28.1ms idle=15.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:19:52Z", "online", "status", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.697] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404741, itemkey: "status", value: "online", timestamp: "2026-07-12T22:19:52Z", message: "Terminal status update", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.697] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:10:02.697] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:19:52Z", "value" => "27"} [2026-07-13 07:10:02.732] [DEBUG] QUERY OK db=34.4ms idle=33.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:19:52Z", "27", "battery", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.735] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404742, itemkey: "battery", value: "27", timestamp: "2026-07-12T22:19:52Z", message: "Battery level", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.735] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:19:52Z", "value" => "online"} [2026-07-13 07:10:02.751] [DEBUG] QUERY OK db=13.3ms idle=39.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:19:52Z", "online", "network", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.751] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404743, itemkey: "network", value: "online", timestamp: "2026-07-12T22:19:52Z", message: "Network connectivity", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.752] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:10:02.752] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:19:52Z", "value" => "0"} [2026-07-13 07:10:02.767] [DEBUG] QUERY OK db=15.1ms idle=19.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:19:52Z", "0", "cpu", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.768] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404744, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:19:52Z", message: "CPU usage percentage", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.768] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:19:52Z", "value" => "1.0.0"} [2026-07-13 07:10:02.802] [DEBUG] QUERY OK db=33.6ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:19:52Z", "1.0.0", "parameter_config", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.802] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404745, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:19:52Z", message: "Current parameters version", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.805] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:19:52Z", "value" => "1.0.1"} [2026-07-13 07:10:02.839] [DEBUG] QUERY OK db=33.5ms queue=0.1ms idle=38.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:19:52Z", "1.0.1", "emv_config", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.839] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404746, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:19:52Z", message: "Current EMV config version", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.843] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:19:52Z", "value" => ""} [2026-07-13 07:10:02.904] [DEBUG] QUERY OK db=19.3ms queue=41.3ms idle=41.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:19:52Z", "keys_config", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.904] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404747, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:19:52Z", message: "Current keys config version", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.905] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:19:52Z", "value" => "1.0.0"} [2026-07-13 07:10:02.928] [DEBUG] QUERY OK db=23.4ms idle=65.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:19:52Z", "1.0.0", "application", 47067, ~N[2026-07-13 07:10:02], ~N[2026-07-13 07:10:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:02.929] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404748, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:19:52Z", message: "Current application version", status_log_id: 47067, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:02], updated_at: ~N[2026-07-13 07:10:02]}} [2026-07-13 07:10:02.935] [WARN ] Unexpected async result [2026-07-13 07:10:02.935] [WARN ] Unexpected async result [2026-07-13 07:10:16.097] [INFO ] Running offline device check... [2026-07-13 07:10:16.098] [INFO ] Starting offline device check... [2026-07-13 07:10:16.099] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=899.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:10:16.110] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.5ms idle=580.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.6ms idle=11.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.122] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=10.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.124] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.143] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.144] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=12.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.164] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.167] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms queue=0.1ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.171] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.7ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=21.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.199] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.218] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=16.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.241] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms queue=0.7ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.246] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.251] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.5ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.252] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.253] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.262] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.265] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.265] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.269] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:10:16.270] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:10:16.272] [INFO ] Offline device check completed successfully [2026-07-13 07:10:27.858] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:10:27.858] [INFO ] Incoming JSON payload: {"oid":"17c21d46-45a0-48e3-b848-5d57e7fcc09b","sn":"98251226730001","uploadTime":"2026-07-13T15:13:42Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"ram_free_mb","value":"949","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:13:42Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:10:27.859] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "17c21d46-45a0-48e3-b848-5d57e7fcc09b", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:13:42Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:13:42Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:13:42Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:13:42Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:13:42Z", "value" => "949"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:13:42Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:13:42Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:13:42Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:13:42Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:13:42Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:13:42Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:13:42Z", "vendor" => "morefun"} [2026-07-13 07:10:27.859] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:10:27.859] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:10:27.859] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:10:27.860] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1303.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:10:27.861] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.5ms idle=301.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:10:27.861] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:10:27.863] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.1ms idle=2.7ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:10:27.864] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:10:27.931] [DEBUG] QUERY OK source="tms_terminals" db=25.2ms queue=40.8ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:10:27], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:10:27.931] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:10:27.932] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=67.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:10:27.946] [DEBUG] QUERY OK source="tms_terminals" db=14.2ms queue=0.1ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:10:27], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:10:27.968] [DEBUG] QUERY OK db=21.4ms idle=14.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "17c21d46-45a0-48e3-b848-5d57e7fcc09b", "2026-07-13T15:13:42Z", ~N[2026-07-13 07:10:27], ~N[2026-07-13 07:10:27]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:10:27.969] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47068, oid: "17c21d46-45a0-48e3-b848-5d57e7fcc09b", upload_time: "2026-07-13T15:13:42Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:27], updated_at: ~N[2026-07-13 07:10:27]} [2026-07-13 07:10:27.969] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:13:42Z", "value" => "morefun"} [2026-07-13 07:10:27.994] [DEBUG] QUERY OK db=24.7ms queue=0.3ms idle=22.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "morefun", "vendor", 47068, ~N[2026-07-13 07:10:27], ~N[2026-07-13 07:10:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:27.995] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404749, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:27], updated_at: ~N[2026-07-13 07:10:27]}} [2026-07-13 07:10:27.995] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:13:42Z", "value" => "kiosk_launcher"} [2026-07-13 07:10:28.050] [DEBUG] QUERY OK db=13.7ms queue=41.4ms idle=26.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "kiosk_launcher", "model", 47068, ~N[2026-07-13 07:10:27], ~N[2026-07-13 07:10:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.050] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404750, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:27], updated_at: ~N[2026-07-13 07:10:27]}} [2026-07-13 07:10:28.051] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:13:42Z", "value" => "1.0"} [2026-07-13 07:10:28.065] [DEBUG] QUERY OK db=14.3ms idle=56.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "1.0", "app_version", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.066] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404751, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.066] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:13:42Z", "value" => "13"} [2026-07-13 07:10:28.083] [DEBUG] QUERY OK db=16.3ms idle=15.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "13", "android_version", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.083] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404752, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.083] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:13:42Z", "value" => "949"} [2026-07-13 07:10:28.115] [DEBUG] QUERY OK db=29.3ms queue=1.1ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "949", "ram_free_mb", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.116] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404753, itemkey: "ram_free_mb", value: "949", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.116] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:13:42Z", "value" => "WIFI"} [2026-07-13 07:10:28.138] [DEBUG] QUERY OK db=20.5ms queue=1.2ms idle=33.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "WIFI", "network_type", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.138] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404754, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.138] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:13:42Z", "value" => "true"} [2026-07-13 07:10:28.153] [DEBUG] QUERY OK db=14.5ms idle=23.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "true", "kiosk_active", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.154] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404755, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.155] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:13:42Z", "value" => ""} [2026-07-13 07:10:28.176] [DEBUG] QUERY OK db=21.1ms idle=16.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:13:42Z", "sim_operator", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.176] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404756, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.176] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"} [2026-07-13 07:10:28.204] [DEBUG] QUERY OK db=27.5ms idle=23.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "UNKNOWN", "sim_number", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.205] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404757, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.205] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"} [2026-07-13 07:10:28.232] [DEBUG] QUERY OK db=25.6ms queue=0.8ms idle=29.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "UNKNOWN", "sim_iccid", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.233] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404758, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.233] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"} [2026-07-13 07:10:28.244] [DEBUG] QUERY OK db=10.9ms idle=29.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "UNKNOWN", "sim_imsi", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.246] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404759, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.246] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"} [2026-07-13 07:10:28.262] [DEBUG] QUERY OK db=15.6ms idle=15.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "UNKNOWN", "sim_iccid2", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.263] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404760, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.263] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:13:42Z", "value" => "UNKNOWN"} [2026-07-13 07:10:28.292] [DEBUG] QUERY OK db=28.7ms queue=0.1ms idle=18.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "UNKNOWN", "sim_imsi2", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.292] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404761, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.292] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:13:42Z", "value" => "1"} [2026-07-13 07:10:28.320] [DEBUG] QUERY OK db=26.9ms idle=30.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "1", "data_usage_mb", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404762, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.320] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:13:42Z", "value" => "0"} [2026-07-13 07:10:28.378] [DEBUG] QUERY OK db=57.7ms idle=28.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "0", "mobile_data_mb", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.379] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404763, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:28.380] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:13:42Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:10:28.413] [DEBUG] QUERY OK db=32.0ms idle=60.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:13:42Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47068, ~N[2026-07-13 07:10:28], ~N[2026-07-13 07:10:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:28.414] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404764, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:13:42Z", message: nil, status_log_id: 47068, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:28], updated_at: ~N[2026-07-13 07:10:28]}} [2026-07-13 07:10:33.346] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:10:33.346] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:20:23Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:20:23Z","value":"27"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:20:23Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:20:23Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:20:23Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:20:23Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:20:23Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:20:23Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:20:23Z","vendor":"MoreFun"} [2026-07-13 07:10:33.346] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:20:23Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:20:23Z", "value" => "27"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:20:23Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:20:23Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:20:23Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:20:23Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:20:23Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:20:23Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:20:23Z", "vendor" => "MoreFun"} [2026-07-13 07:10:33.346] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:10:33.346] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:10:33.346] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:10:33.350] [DEBUG] QUERY OK source="parameter_templates" db=3.5ms idle=1430.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:10:33.353] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=779.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:10:33.355] [DEBUG] QUERY OK source="parameter_template_values" db=1.0ms queue=0.4ms idle=3.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:10:33.361] [DEBUG] QUERY OK source="parameter_definitions" db=2.8ms queue=2.6ms idle=2.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:10:33.365] [DEBUG] QUERY OK source="pos_terminal" db=2.0ms idle=8.6ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:10:33.400] [DEBUG] QUERY OK source="pos_merchant" db=33.7ms idle=5.1ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:10:33.404] [DEBUG] QUERY OK db=0.9ms queue=3.3ms idle=1493.6ms 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 ["501983400000000"] [2026-07-13 07:10:33.404] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:10:33.405] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms queue=0.1ms idle=39.2ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:10:33.406] [DEBUG] QUERY OK source="address" db=0.6ms idle=6.0ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:10:33.406] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:10:33.408] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:10:33.436] [DEBUG] QUERY OK db=25.8ms idle=3.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "59ba6fc2956f24192af528789d7398f551bf4ceb734702f4f0b06882d8304bf7", 2147, 916, ~U[2026-07-13 07:10:33Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:10:33.436] [INFO ] AutoPushService: Created push log 33515 for MF919 params.zip [2026-07-13 07:10:33.436] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 2147, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:10:33.436] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:10:33.436] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:10:33.438] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms queue=0.1ms idle=30.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:10:33.444] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:10:33.474] [DEBUG] QUERY OK db=29.8ms idle=9.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c76edac134eadf3ecbb4f22d1af4a31238c9a2c7e1034323bf0fd2d1f49dae27", 1956, 17947, ~U[2026-07-13 07:10:33Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:10:33.477] [INFO ] AutoPushService: Created push log 33516 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:10:33.477] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 1956, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:10:33.477] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:10:33.478] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:10:33.481] [DEBUG] QUERY OK source="config_file_versions" db=2.6ms idle=39.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:10:33.481] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:10:33.488] [DEBUG] QUERY OK source="tms_terminals" db=4.6ms idle=8.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:10:33.488] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:10:33.490] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:10:33.490] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:10:33.490] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:10:33.491] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=9.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:10:33.494] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:10:33.494] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:10:33.497] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=7.7ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:10:33.498] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:10:33.509] [DEBUG] QUERY OK source="tms_terminals" db=11.0ms idle=6.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:10:33], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:10:33.512] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms queue=0.3ms idle=13.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:10:33.513] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:10:33.515] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:10:33.515] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:10:33.567] [DEBUG] QUERY OK source="parameter_push_logs" db=51.5ms idle=2.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 [19, "application", ~N[2026-07-13 06:40:33]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:10:33.567] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:10:33.567] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:10:33.570] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=53.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:10:33.571] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms queue=0.3ms idle=3.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:10:33.571] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:10:33.572] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:10:33.592] [DEBUG] QUERY OK source="tms_terminals" db=19.7ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:10:33], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:10:33.621] [DEBUG] QUERY OK db=28.1ms idle=16.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:20:23Z", ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:10:33.622] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47069, oid: "organization_id", upload_time: "2026-07-12T22:20:23Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]} [2026-07-13 07:10:33.623] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:20:23Z", "value" => "online"} [2026-07-13 07:10:33.649] [DEBUG] QUERY OK db=25.8ms idle=31.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:20:23Z", "online", "status", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404765, itemkey: "status", value: "online", timestamp: "2026-07-12T22:20:23Z", message: "Terminal status update", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.650] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:10:33.650] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:20:23Z", "value" => "27"} [2026-07-13 07:10:33.662] [DEBUG] QUERY OK db=12.0ms idle=29.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:20:23Z", "27", "battery", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.663] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404766, itemkey: "battery", value: "27", timestamp: "2026-07-12T22:20:23Z", message: "Battery level", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.663] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:20:23Z", "value" => "online"} [2026-07-13 07:10:33.681] [DEBUG] QUERY OK db=18.1ms queue=0.1ms idle=13.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:20:23Z", "online", "network", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.682] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404767, itemkey: "network", value: "online", timestamp: "2026-07-12T22:20:23Z", message: "Network connectivity", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.682] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:10:33.683] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:20:23Z", "value" => "0"} [2026-07-13 07:10:33.706] [DEBUG] QUERY OK db=23.3ms idle=21.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:20:23Z", "0", "cpu", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.706] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404768, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:20:23Z", message: "CPU usage percentage", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.707] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:20:23Z", "value" => "1.0.0"} [2026-07-13 07:10:33.730] [DEBUG] QUERY OK db=22.9ms decode=0.1ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:20:23Z", "1.0.0", "parameter_config", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.730] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404769, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:20:23Z", message: "Current parameters version", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.730] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:20:23Z", "value" => "1.0.1"} [2026-07-13 07:10:33.751] [DEBUG] QUERY OK db=19.8ms idle=24.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:20:23Z", "1.0.1", "emv_config", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.752] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404770, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:20:23Z", message: "Current EMV config version", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.752] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:20:23Z", "value" => ""} [2026-07-13 07:10:33.805] [DEBUG] QUERY OK db=10.9ms queue=41.8ms idle=22.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:20:23Z", "keys_config", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.806] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404771, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:20:23Z", message: "Current keys config version", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.806] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:20:23Z", "value" => "1.0.0"} [2026-07-13 07:10:33.829] [DEBUG] QUERY OK db=22.7ms idle=55.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:20:23Z", "1.0.0", "application", 47069, ~N[2026-07-13 07:10:33], ~N[2026-07-13 07:10:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:33.829] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404772, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:20:23Z", message: "Current application version", status_log_id: 47069, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:33], updated_at: ~N[2026-07-13 07:10:33]}} [2026-07-13 07:10:33.830] [WARN ] Unexpected async result [2026-07-13 07:10:33.831] [WARN ] Unexpected async result [2026-07-13 07:10:57.961] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:10:57.961] [INFO ] Incoming JSON payload: {"oid":"bde0802d-3ff7-4b68-be40-f1992243e6be","sn":"98251226730001","uploadTime":"2026-07-13T15:14:12Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"ram_free_mb","value":"951","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:14:12Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:10:57.962] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "bde0802d-3ff7-4b68-be40-f1992243e6be", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:14:12Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:14:12Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:14:12Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:14:12Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:14:12Z", "value" => "951"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:14:12Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:14:12Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:14:12Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:14:12Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:14:12Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:14:12Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:14:12Z", "vendor" => "morefun"} [2026-07-13 07:10:57.963] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:10:57.963] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:10:57.963] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:10:57.964] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=317.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:10:57.966] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=49.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:10:57.966] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:10:57.967] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=2.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:10:57.968] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:10:57.996] [DEBUG] QUERY OK source="tms_terminals" db=27.1ms queue=1.4ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:10:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:10:57.997] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:10:58.000] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=1.1ms idle=30.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:10:58.028] [DEBUG] QUERY OK source="tms_terminals" db=26.4ms queue=0.1ms idle=5.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:10:58], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:10:58.041] [DEBUG] QUERY OK db=11.4ms idle=29.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "bde0802d-3ff7-4b68-be40-f1992243e6be", "2026-07-13T15:14:12Z", ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:10:58.041] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47070, oid: "bde0802d-3ff7-4b68-be40-f1992243e6be", upload_time: "2026-07-13T15:14:12Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]} [2026-07-13 07:10:58.041] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:14:12Z", "value" => "morefun"} [2026-07-13 07:10:58.059] [DEBUG] QUERY OK db=17.6ms idle=13.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "morefun", "vendor", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.060] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404773, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.060] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:14:12Z", "value" => "kiosk_launcher"} [2026-07-13 07:10:58.124] [DEBUG] QUERY OK db=22.4ms queue=41.2ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "kiosk_launcher", "model", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.124] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404774, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.124] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:14:12Z", "value" => "1.0"} [2026-07-13 07:10:58.147] [DEBUG] QUERY OK db=22.7ms queue=0.1ms idle=65.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "1.0", "app_version", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.148] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404775, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.148] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:14:12Z", "value" => "13"} [2026-07-13 07:10:58.157] [DEBUG] QUERY OK db=8.6ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "13", "android_version", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.157] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404776, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.157] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:14:12Z", "value" => "951"} [2026-07-13 07:10:58.167] [DEBUG] QUERY OK db=8.8ms queue=0.2ms idle=10.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "951", "ram_free_mb", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.167] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404777, itemkey: "ram_free_mb", value: "951", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.167] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:14:12Z", "value" => "WIFI"} [2026-07-13 07:10:58.190] [DEBUG] QUERY OK db=22.4ms idle=10.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "WIFI", "network_type", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.191] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404778, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.192] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:14:12Z", "value" => "true"} [2026-07-13 07:10:58.225] [DEBUG] QUERY OK db=32.8ms idle=25.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "true", "kiosk_active", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.225] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404779, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.225] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:14:12Z", "value" => ""} [2026-07-13 07:10:58.238] [DEBUG] QUERY OK db=12.2ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:14:12Z", "sim_operator", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.238] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404780, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.240] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"} [2026-07-13 07:10:58.253] [DEBUG] QUERY OK db=12.1ms queue=0.5ms idle=15.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "UNKNOWN", "sim_number", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.254] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404781, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.254] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"} [2026-07-13 07:10:58.280] [DEBUG] QUERY OK db=26.0ms idle=16.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "UNKNOWN", "sim_iccid", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.281] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404782, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.281] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"} [2026-07-13 07:10:58.304] [DEBUG] QUERY OK db=22.3ms idle=28.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "UNKNOWN", "sim_imsi", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.304] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404783, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.304] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"} [2026-07-13 07:10:58.330] [DEBUG] QUERY OK db=24.3ms queue=0.5ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "UNKNOWN", "sim_iccid2", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.330] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404784, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.330] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:14:12Z", "value" => "UNKNOWN"} [2026-07-13 07:10:58.345] [DEBUG] QUERY OK db=14.5ms queue=0.2ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "UNKNOWN", "sim_imsi2", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.345] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404785, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.346] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:14:12Z", "value" => "1"} [2026-07-13 07:10:58.365] [DEBUG] QUERY OK db=19.3ms idle=16.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "1", "data_usage_mb", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.365] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404786, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.366] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:14:12Z", "value" => "0"} [2026-07-13 07:10:58.394] [DEBUG] QUERY OK db=27.7ms idle=20.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "0", "mobile_data_mb", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.394] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404787, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:10:58.395] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:14:12Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:10:58.420] [DEBUG] QUERY OK db=22.4ms queue=1.6ms idle=29.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:12Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47070, ~N[2026-07-13 07:10:58], ~N[2026-07-13 07:10:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:10:58.423] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404788, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:14:12Z", message: nil, status_log_id: 47070, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:10:58], updated_at: ~N[2026-07-13 07:10:58]}} [2026-07-13 07:11:28.336] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:11:28.336] [INFO ] Incoming JSON payload: {"oid":"e2553638-60eb-4580-9948-02a4f8f58818","sn":"98251226730001","uploadTime":"2026-07-13T15:14:42Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"ram_free_mb","value":"951","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:14:42Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:11:28.337] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e2553638-60eb-4580-9948-02a4f8f58818", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:14:42Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:14:42Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:14:42Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:14:42Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:14:42Z", "value" => "951"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:14:42Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:14:42Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:14:42Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:14:42Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:14:42Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:14:42Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:14:42Z", "vendor" => "morefun"} [2026-07-13 07:11:28.337] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:11:28.337] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:11:28.337] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:11:28.341] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.1ms idle=1420.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:11:28.341] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=494.6ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:11:28.341] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:11:28.342] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:11:28.342] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:11:28.372] [DEBUG] QUERY OK source="tms_terminals" db=29.2ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:11:28], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:11:28.372] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:11:28.373] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=30.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:11:28.403] [DEBUG] QUERY OK source="tms_terminals" db=28.7ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:11:28], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:11:28.417] [DEBUG] QUERY OK db=14.1ms idle=29.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "e2553638-60eb-4580-9948-02a4f8f58818", "2026-07-13T15:14:42Z", ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:11:28.418] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47071, oid: "e2553638-60eb-4580-9948-02a4f8f58818", upload_time: "2026-07-13T15:14:42Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]} [2026-07-13 07:11:28.418] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:14:42Z", "value" => "morefun"} [2026-07-13 07:11:28.430] [DEBUG] QUERY OK db=11.0ms queue=0.1ms idle=15.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "morefun", "vendor", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.430] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404789, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.430] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:14:42Z", "value" => "kiosk_launcher"} [2026-07-13 07:11:28.450] [DEBUG] QUERY OK db=19.6ms idle=13.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "kiosk_launcher", "model", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.451] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404790, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.451] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:14:42Z", "value" => "1.0"} [2026-07-13 07:11:28.481] [DEBUG] QUERY OK db=30.0ms idle=21.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "1.0", "app_version", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.482] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404791, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.482] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:14:42Z", "value" => "13"} [2026-07-13 07:11:28.505] [DEBUG] QUERY OK db=22.6ms idle=31.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "13", "android_version", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.505] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404792, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.505] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:14:42Z", "value" => "951"} [2026-07-13 07:11:28.517] [DEBUG] QUERY OK db=12.0ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "951", "ram_free_mb", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.518] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404793, itemkey: "ram_free_mb", value: "951", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.518] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:14:42Z", "value" => "WIFI"} [2026-07-13 07:11:28.534] [DEBUG] QUERY OK db=16.1ms idle=13.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "WIFI", "network_type", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.535] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404794, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.535] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:14:42Z", "value" => "true"} [2026-07-13 07:11:28.556] [DEBUG] QUERY OK db=21.1ms idle=17.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "true", "kiosk_active", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.556] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404795, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.558] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:14:42Z", "value" => ""} [2026-07-13 07:11:28.584] [DEBUG] QUERY OK db=25.3ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:14:42Z", "sim_operator", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.584] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404796, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.584] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"} [2026-07-13 07:11:28.609] [DEBUG] QUERY OK db=24.6ms idle=28.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "UNKNOWN", "sim_number", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.610] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404797, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.610] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"} [2026-07-13 07:11:28.626] [DEBUG] QUERY OK db=15.4ms idle=26.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "UNKNOWN", "sim_iccid", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.626] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404798, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.627] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"} [2026-07-13 07:11:28.645] [DEBUG] QUERY OK db=17.4ms idle=18.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "UNKNOWN", "sim_imsi", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.646] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404799, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.646] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"} [2026-07-13 07:11:28.669] [DEBUG] QUERY OK db=22.9ms idle=20.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "UNKNOWN", "sim_iccid2", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.669] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404800, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.669] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:14:42Z", "value" => "UNKNOWN"} [2026-07-13 07:11:28.692] [DEBUG] QUERY OK db=22.4ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "UNKNOWN", "sim_imsi2", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.692] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404801, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.693] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:14:42Z", "value" => "1"} [2026-07-13 07:11:28.710] [DEBUG] QUERY OK db=17.1ms idle=23.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "1", "data_usage_mb", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.710] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404802, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.711] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:14:42Z", "value" => "0"} [2026-07-13 07:11:28.726] [DEBUG] QUERY OK db=15.2ms idle=18.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "0", "mobile_data_mb", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.726] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404803, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:28.727] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:14:42Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:11:28.750] [DEBUG] QUERY OK db=22.1ms idle=17.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:14:42Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47071, ~N[2026-07-13 07:11:28], ~N[2026-07-13 07:11:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:28.751] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404804, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:14:42Z", message: nil, status_log_id: 47071, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:28], updated_at: ~N[2026-07-13 07:11:28]}} [2026-07-13 07:11:58.435] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:11:58.435] [INFO ] Incoming JSON payload: {"oid":"63c41bca-e922-4d8e-ba52-0fcf1bffd699","sn":"98251226730001","uploadTime":"2026-07-13T15:15:13Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"ram_free_mb","value":"949","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:15:13Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:11:58.437] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "63c41bca-e922-4d8e-ba52-0fcf1bffd699", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:15:13Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:15:13Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:15:13Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:15:13Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:15:13Z", "value" => "949"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:15:13Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:15:13Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:15:13Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:15:13Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:15:13Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:15:13Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:15:13Z", "vendor" => "morefun"} [2026-07-13 07:11:58.437] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:11:58.437] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:11:58.438] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:11:58.439] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1498.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:11:58.439] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=496.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:11:58.439] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:11:58.440] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:11:58.441] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:11:58.474] [DEBUG] QUERY OK source="tms_terminals" db=32.8ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:11:58], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:11:58.474] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:11:58.475] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=33.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:11:58.511] [DEBUG] QUERY OK source="tms_terminals" db=35.0ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:11:58], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:11:58.542] [DEBUG] QUERY OK db=29.4ms queue=0.9ms idle=35.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "63c41bca-e922-4d8e-ba52-0fcf1bffd699", "2026-07-13T15:15:13Z", ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:11:58.542] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47072, oid: "63c41bca-e922-4d8e-ba52-0fcf1bffd699", upload_time: "2026-07-13T15:15:13Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]} [2026-07-13 07:11:58.542] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:15:13Z", "value" => "morefun"} [2026-07-13 07:11:58.568] [DEBUG] QUERY OK db=25.6ms idle=31.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "morefun", "vendor", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.568] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404805, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.568] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:15:13Z", "value" => "kiosk_launcher"} [2026-07-13 07:11:58.601] [DEBUG] QUERY OK db=32.4ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "kiosk_launcher", "model", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.601] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404806, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.602] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:15:13Z", "value" => "1.0"} [2026-07-13 07:11:58.623] [DEBUG] QUERY OK db=21.4ms idle=33.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "1.0", "app_version", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.624] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404807, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.624] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:15:13Z", "value" => "13"} [2026-07-13 07:11:58.658] [DEBUG] QUERY OK db=33.6ms idle=22.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "13", "android_version", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.659] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404808, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.659] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:15:13Z", "value" => "949"} [2026-07-13 07:11:58.684] [DEBUG] QUERY OK db=23.8ms idle=36.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "949", "ram_free_mb", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.684] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404809, itemkey: "ram_free_mb", value: "949", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.684] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:15:13Z", "value" => "WIFI"} [2026-07-13 07:11:58.717] [DEBUG] QUERY OK db=31.3ms queue=0.4ms idle=27.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "WIFI", "network_type", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.718] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404810, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.718] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:15:13Z", "value" => "true"} [2026-07-13 07:11:58.739] [DEBUG] QUERY OK db=19.4ms idle=35.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "true", "kiosk_active", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.739] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404811, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.739] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:15:13Z", "value" => ""} [2026-07-13 07:11:58.764] [DEBUG] QUERY OK db=24.5ms idle=22.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:15:13Z", "sim_operator", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.764] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404812, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.764] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"} [2026-07-13 07:11:58.799] [DEBUG] QUERY OK db=34.5ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "UNKNOWN", "sim_number", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.800] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404813, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.800] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"} [2026-07-13 07:11:58.825] [DEBUG] QUERY OK db=24.1ms idle=36.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "UNKNOWN", "sim_iccid", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.825] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404814, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.825] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"} [2026-07-13 07:11:58.856] [DEBUG] QUERY OK db=30.2ms idle=26.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "UNKNOWN", "sim_imsi", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.856] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404815, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.856] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"} [2026-07-13 07:11:58.877] [DEBUG] QUERY OK db=19.8ms idle=32.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "UNKNOWN", "sim_iccid2", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.877] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404816, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.877] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:15:13Z", "value" => "UNKNOWN"} [2026-07-13 07:11:58.911] [DEBUG] QUERY OK db=32.8ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "UNKNOWN", "sim_imsi2", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.911] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404817, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.911] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:15:13Z", "value" => "1"} [2026-07-13 07:11:58.934] [DEBUG] QUERY OK db=22.8ms idle=34.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "1", "data_usage_mb", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:58.934] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404818, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:58.934] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:15:13Z", "value" => "0"} [2026-07-13 07:11:59.004] [DEBUG] QUERY OK db=69.1ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "0", "mobile_data_mb", 47072, ~N[2026-07-13 07:11:58], ~N[2026-07-13 07:11:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:59.004] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404819, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:58], updated_at: ~N[2026-07-13 07:11:58]}} [2026-07-13 07:11:59.005] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:15:13Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:11:59.045] [DEBUG] QUERY OK db=39.5ms idle=60.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:13Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47072, ~N[2026-07-13 07:11:59], ~N[2026-07-13 07:11:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:11:59.047] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404820, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:15:13Z", message: nil, status_log_id: 47072, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:11:59], updated_at: ~N[2026-07-13 07:11:59]}} [2026-07-13 07:12:29.731] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:12:29.731] [INFO ] Incoming JSON payload: {"oid":"768467c5-19f4-460d-9753-c0cda51a4102","sn":"98251226730001","uploadTime":"2026-07-13T15:15:44Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"ram_free_mb","value":"952","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:15:44Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:12:29.734] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "768467c5-19f4-460d-9753-c0cda51a4102", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:15:44Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:15:44Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:15:44Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:15:44Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:15:44Z", "value" => "952"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:15:44Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:15:44Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:15:44Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:15:44Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:15:44Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:15:44Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:15:44Z", "vendor" => "morefun"} [2026-07-13 07:12:29.734] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:12:29.735] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:12:29.736] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:12:29.738] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms queue=1.2ms idle=815.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:12:29.739] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.1ms idle=656.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:12:29.739] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:12:29.763] [DEBUG] QUERY OK source="tms_terminals" db=23.4ms idle=1.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:12:29.765] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:12:29.782] [DEBUG] QUERY OK source="tms_terminals" db=17.1ms idle=25.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:12:29], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:12:29.783] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:12:29.784] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.1ms idle=19.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:12:29.806] [DEBUG] QUERY OK source="tms_terminals" db=20.4ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:12:29], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:12:29.839] [DEBUG] QUERY OK db=32.8ms queue=0.4ms idle=22.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "768467c5-19f4-460d-9753-c0cda51a4102", "2026-07-13T15:15:44Z", ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:12:29.840] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47073, oid: "768467c5-19f4-460d-9753-c0cda51a4102", upload_time: "2026-07-13T15:15:44Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]} [2026-07-13 07:12:29.840] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:15:44Z", "value" => "morefun"} [2026-07-13 07:12:29.876] [DEBUG] QUERY OK db=35.9ms idle=0.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "morefun", "vendor", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:29.877] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404821, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:29.877] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:15:44Z", "value" => "kiosk_launcher"} [2026-07-13 07:12:29.889] [DEBUG] QUERY OK db=11.3ms queue=0.1ms idle=0.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "kiosk_launcher", "model", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:29.889] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404822, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:29.891] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:15:44Z", "value" => "1.0"} [2026-07-13 07:12:29.919] [DEBUG] QUERY OK db=26.0ms idle=14.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "1.0", "app_version", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:29.919] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404823, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:29.920] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:15:44Z", "value" => "13"} [2026-07-13 07:12:29.944] [DEBUG] QUERY OK db=23.6ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "13", "android_version", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:29.945] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404824, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:29.945] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:15:44Z", "value" => "952"} [2026-07-13 07:12:29.978] [DEBUG] QUERY OK db=32.5ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "952", "ram_free_mb", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:29.978] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404825, itemkey: "ram_free_mb", value: "952", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:29.978] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:15:44Z", "value" => "WIFI"} [2026-07-13 07:12:29.990] [DEBUG] QUERY OK db=11.1ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "WIFI", "network_type", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:29.990] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404826, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:29.990] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:15:44Z", "value" => "true"} [2026-07-13 07:12:30.012] [DEBUG] QUERY OK db=21.4ms idle=12.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "true", "kiosk_active", 47073, ~N[2026-07-13 07:12:29], ~N[2026-07-13 07:12:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.012] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404827, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:29], updated_at: ~N[2026-07-13 07:12:29]}} [2026-07-13 07:12:30.013] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:15:44Z", "value" => ""} [2026-07-13 07:12:30.048] [DEBUG] QUERY OK db=33.0ms queue=2.4ms idle=23.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:15:44Z", "sim_operator", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.049] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404828, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.052] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"} [2026-07-13 07:12:30.085] [DEBUG] QUERY OK db=32.1ms queue=0.1ms idle=40.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "UNKNOWN", "sim_number", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.085] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404829, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.085] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"} [2026-07-13 07:12:30.097] [DEBUG] QUERY OK db=10.9ms idle=0.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "UNKNOWN", "sim_iccid", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.097] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404830, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.097] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"} [2026-07-13 07:12:30.108] [DEBUG] QUERY OK db=10.8ms idle=9.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "UNKNOWN", "sim_imsi", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.109] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404831, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.109] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"} [2026-07-13 07:12:30.132] [DEBUG] QUERY OK db=23.0ms queue=0.1ms idle=12.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "UNKNOWN", "sim_iccid2", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.132] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404832, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.132] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:15:44Z", "value" => "UNKNOWN"} [2026-07-13 07:12:30.156] [DEBUG] QUERY OK db=23.4ms idle=24.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "UNKNOWN", "sim_imsi2", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.157] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404833, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.157] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:15:44Z", "value" => "1"} [2026-07-13 07:12:30.181] [DEBUG] QUERY OK db=24.1ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "1", "data_usage_mb", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.182] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404834, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.182] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:15:44Z", "value" => "0"} [2026-07-13 07:12:30.201] [DEBUG] QUERY OK db=19.1ms queue=0.1ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "0", "mobile_data_mb", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.201] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404835, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:30.205] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:15:44Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:12:30.221] [DEBUG] QUERY OK db=15.1ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:15:44Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47073, ~N[2026-07-13 07:12:30], ~N[2026-07-13 07:12:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:30.223] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404836, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:15:44Z", message: nil, status_log_id: 47073, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:30], updated_at: ~N[2026-07-13 07:12:30]}} [2026-07-13 07:12:59.823] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:12:59.823] [INFO ] Incoming JSON payload: {"oid":"efeee3db-c9b1-486f-b0be-8a5224f7c45f","sn":"98251226730001","uploadTime":"2026-07-13T15:16:14Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"ram_free_mb","value":"951","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:16:14Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:12:59.824] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "efeee3db-c9b1-486f-b0be-8a5224f7c45f", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:16:14Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:16:14Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:16:14Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:16:14Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:16:14Z", "value" => "951"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:16:14Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:16:14Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:16:14Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:16:14Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:16:14Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:16:14Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:16:14Z", "vendor" => "morefun"} [2026-07-13 07:12:59.824] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:12:59.824] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:12:59.824] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:12:59.831] [DEBUG] QUERY OK source="parameter_templates" db=6.1ms idle=1108.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:12:59.837] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=4.0ms idle=636.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:12:59.837] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:12:59.841] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=8.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:12:59.841] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:12:59.870] [DEBUG] QUERY OK source="tms_terminals" db=28.8ms idle=4.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:12:59], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:12:59.870] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:12:59.875] [DEBUG] QUERY OK source="tms_terminals" db=4.7ms idle=30.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:12:59.904] [DEBUG] QUERY OK source="tms_terminals" db=25.4ms queue=2.9ms idle=5.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:12:59], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:12:59.928] [DEBUG] QUERY OK db=23.7ms idle=29.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "efeee3db-c9b1-486f-b0be-8a5224f7c45f", "2026-07-13T15:16:14Z", ~N[2026-07-13 07:12:59], ~N[2026-07-13 07:12:59]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:12:59.930] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47074, oid: "efeee3db-c9b1-486f-b0be-8a5224f7c45f", upload_time: "2026-07-13T15:16:14Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:59], updated_at: ~N[2026-07-13 07:12:59]} [2026-07-13 07:12:59.930] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:16:14Z", "value" => "morefun"} [2026-07-13 07:12:59.952] [DEBUG] QUERY OK db=21.5ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "morefun", "vendor", 47074, ~N[2026-07-13 07:12:59], ~N[2026-07-13 07:12:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:59.953] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404837, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:59], updated_at: ~N[2026-07-13 07:12:59]}} [2026-07-13 07:12:59.953] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:16:14Z", "value" => "kiosk_launcher"} [2026-07-13 07:12:59.978] [DEBUG] QUERY OK db=24.0ms idle=25.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "kiosk_launcher", "model", 47074, ~N[2026-07-13 07:12:59], ~N[2026-07-13 07:12:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:12:59.978] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404838, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:59], updated_at: ~N[2026-07-13 07:12:59]}} [2026-07-13 07:12:59.978] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:16:14Z", "value" => "1.0"} [2026-07-13 07:13:00.011] [DEBUG] QUERY OK db=33.0ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "1.0", "app_version", 47074, ~N[2026-07-13 07:12:59], ~N[2026-07-13 07:12:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.012] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404839, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:12:59], updated_at: ~N[2026-07-13 07:12:59]}} [2026-07-13 07:13:00.012] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:16:14Z", "value" => "13"} [2026-07-13 07:13:00.037] [DEBUG] QUERY OK db=24.4ms queue=0.1ms idle=8.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "13", "android_version", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.037] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404840, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.037] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:16:14Z", "value" => "951"} [2026-07-13 07:13:00.104] [DEBUG] QUERY OK db=66.5ms queue=0.1ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "951", "ram_free_mb", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.104] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404841, itemkey: "ram_free_mb", value: "951", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.104] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:16:14Z", "value" => "WIFI"} [2026-07-13 07:13:00.124] [DEBUG] QUERY OK db=18.5ms queue=1.2ms idle=68.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "WIFI", "network_type", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.125] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404842, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.125] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:16:14Z", "value" => "true"} [2026-07-13 07:13:00.146] [DEBUG] QUERY OK db=20.1ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "true", "kiosk_active", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.147] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404843, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.147] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:16:14Z", "value" => ""} [2026-07-13 07:13:00.182] [DEBUG] QUERY OK db=30.9ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:16:14Z", "sim_operator", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.182] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404844, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.183] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"} [2026-07-13 07:13:00.215] [DEBUG] QUERY OK db=31.7ms idle=37.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "UNKNOWN", "sim_number", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.215] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404845, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.216] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"} [2026-07-13 07:13:00.237] [DEBUG] QUERY OK db=20.1ms idle=17.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "UNKNOWN", "sim_iccid", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.237] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404846, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.237] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"} [2026-07-13 07:13:00.268] [DEBUG] QUERY OK db=30.0ms idle=22.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "UNKNOWN", "sim_imsi", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.268] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404847, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.269] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"} [2026-07-13 07:13:00.306] [DEBUG] QUERY OK db=36.3ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "UNKNOWN", "sim_iccid2", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.306] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404848, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.306] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:16:14Z", "value" => "UNKNOWN"} [2026-07-13 07:13:00.329] [DEBUG] QUERY OK db=22.9ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "UNKNOWN", "sim_imsi2", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.329] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404849, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.329] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:16:14Z", "value" => "1"} [2026-07-13 07:13:00.358] [DEBUG] QUERY OK db=27.0ms queue=1.3ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "1", "data_usage_mb", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.358] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404850, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.358] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:16:14Z", "value" => "0"} [2026-07-13 07:13:00.382] [DEBUG] QUERY OK db=22.7ms idle=29.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "0", "mobile_data_mb", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.382] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404851, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:00.382] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:16:14Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:13:00.487] [DEBUG] QUERY OK db=103.7ms idle=24.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:14Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47074, ~N[2026-07-13 07:13:00], ~N[2026-07-13 07:13:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:00.488] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404852, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:16:14Z", message: nil, status_log_id: 47074, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:00], updated_at: ~N[2026-07-13 07:13:00]}} [2026-07-13 07:13:29.919] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:13:29.919] [INFO ] Incoming JSON payload: {"oid":"5f077458-3a12-4a9c-bb66-f2621612e370","sn":"98251226730001","uploadTime":"2026-07-13T15:16:44Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"ram_free_mb","value":"950","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:16:44Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:13:29.920] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "5f077458-3a12-4a9c-bb66-f2621612e370", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:16:44Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:16:44Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:16:44Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:16:44Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:16:44Z", "value" => "950"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:16:44Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:16:44Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:16:44Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:16:44Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:16:44Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:16:44Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:16:44Z", "vendor" => "morefun"} [2026-07-13 07:13:29.921] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:13:29.921] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:13:29.921] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:13:29.927] [DEBUG] QUERY OK source="parameter_templates" db=6.1ms idle=989.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:13:29.929] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=589.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:13:29.929] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:13:29.931] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=3.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:13:29.932] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:13:29.988] [DEBUG] QUERY OK source="tms_terminals" db=55.2ms idle=2.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:13:29], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:13:29.988] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:13:29.992] [DEBUG] QUERY OK source="tms_terminals" db=4.5ms idle=56.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:13:30.024] [DEBUG] QUERY OK source="tms_terminals" db=30.5ms idle=6.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:13:29], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:13:30.050] [DEBUG] QUERY OK db=24.8ms idle=32.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "5f077458-3a12-4a9c-bb66-f2621612e370", "2026-07-13T15:16:44Z", ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:13:30.050] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47075, oid: "5f077458-3a12-4a9c-bb66-f2621612e370", upload_time: "2026-07-13T15:16:44Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]} [2026-07-13 07:13:30.050] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:16:44Z", "value" => "morefun"} [2026-07-13 07:13:30.083] [DEBUG] QUERY OK db=31.8ms queue=0.8ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "morefun", "vendor", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.083] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404853, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.085] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:16:44Z", "value" => "kiosk_launcher"} [2026-07-13 07:13:30.105] [DEBUG] QUERY OK db=19.2ms idle=35.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "kiosk_launcher", "model", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.105] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404854, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.105] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:16:44Z", "value" => "1.0"} [2026-07-13 07:13:30.142] [DEBUG] QUERY OK db=36.5ms idle=22.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "1.0", "app_version", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404855, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.143] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:16:44Z", "value" => "13"} [2026-07-13 07:13:30.174] [DEBUG] QUERY OK db=30.8ms idle=38.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "13", "android_version", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.175] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404856, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.175] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:16:44Z", "value" => "950"} [2026-07-13 07:13:30.203] [DEBUG] QUERY OK db=28.0ms idle=32.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "950", "ram_free_mb", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.203] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404857, itemkey: "ram_free_mb", value: "950", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.203] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:16:44Z", "value" => "WIFI"} [2026-07-13 07:13:30.240] [DEBUG] QUERY OK db=36.4ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "WIFI", "network_type", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.240] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404858, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.241] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:16:44Z", "value" => "true"} [2026-07-13 07:13:30.273] [DEBUG] QUERY OK db=32.5ms idle=37.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "true", "kiosk_active", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.274] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404859, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.274] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:16:44Z", "value" => ""} [2026-07-13 07:13:30.297] [DEBUG] QUERY OK db=22.8ms idle=33.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:16:44Z", "sim_operator", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.297] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404860, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.297] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"} [2026-07-13 07:13:30.318] [DEBUG] QUERY OK db=20.4ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "UNKNOWN", "sim_number", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.318] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404861, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.318] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"} [2026-07-13 07:13:30.354] [DEBUG] QUERY OK db=32.6ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "UNKNOWN", "sim_iccid", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.354] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404862, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.355] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"} [2026-07-13 07:13:30.408] [DEBUG] QUERY OK db=52.5ms idle=12.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "UNKNOWN", "sim_imsi", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.408] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404863, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.408] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"} [2026-07-13 07:13:30.573] [DEBUG] QUERY OK db=164.6ms idle=54.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "UNKNOWN", "sim_iccid2", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.575] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404864, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.575] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:16:44Z", "value" => "UNKNOWN"} [2026-07-13 07:13:30.599] [DEBUG] QUERY OK db=23.2ms idle=167.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "UNKNOWN", "sim_imsi2", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.599] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404865, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.599] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:16:44Z", "value" => "1"} [2026-07-13 07:13:30.623] [DEBUG] QUERY OK db=22.9ms idle=26.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "1", "data_usage_mb", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.623] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404866, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.626] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:16:44Z", "value" => "0"} [2026-07-13 07:13:30.647] [DEBUG] QUERY OK db=20.0ms idle=27.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "0", "mobile_data_mb", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.647] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404867, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:13:30.649] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:16:44Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:13:30.681] [DEBUG] QUERY OK db=31.0ms idle=26.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:16:44Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47075, ~N[2026-07-13 07:13:30], ~N[2026-07-13 07:13:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:13:30.685] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404868, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:16:44Z", message: nil, status_log_id: 47075, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:13:30], updated_at: ~N[2026-07-13 07:13:30]}} [2026-07-13 07:14:00.018] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:14:00.018] [INFO ] Incoming JSON payload: {"oid":"e8c4ad7d-9c71-4e90-a4c3-9caf661ce9d6","sn":"98251226730001","uploadTime":"2026-07-13T15:17:14Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"ram_free_mb","value":"959","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:17:14Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:14:00.020] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e8c4ad7d-9c71-4e90-a4c3-9caf661ce9d6", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:17:14Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:17:14Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:17:14Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:17:14Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:17:14Z", "value" => "959"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:17:14Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:17:14Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:17:14Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:17:14Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:17:14Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:17:14Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:17:14Z", "vendor" => "morefun"} [2026-07-13 07:14:00.020] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:14:00.022] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:14:00.022] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:14:00.023] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=87.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:14:00.026] [DEBUG] QUERY OK source="parameter_templates" db=2.4ms idle=18.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:14:00.026] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:14:00.031] [DEBUG] QUERY OK source="tms_terminals" db=4.8ms idle=2.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:14:00.032] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:14:00.057] [DEBUG] QUERY OK source="tms_terminals" db=24.9ms idle=6.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:14:00], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:14:00.057] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:14:00.059] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=26.7ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:14:00.085] [DEBUG] QUERY OK source="tms_terminals" db=23.8ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:14:00], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:14:00.115] [DEBUG] QUERY OK db=29.7ms idle=26.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "e8c4ad7d-9c71-4e90-a4c3-9caf661ce9d6", "2026-07-13T15:17:14Z", ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:14:00.115] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47076, oid: "e8c4ad7d-9c71-4e90-a4c3-9caf661ce9d6", upload_time: "2026-07-13T15:17:14Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]} [2026-07-13 07:14:00.115] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:17:14Z", "value" => "morefun"} [2026-07-13 07:14:00.134] [DEBUG] QUERY OK db=18.8ms idle=30.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "morefun", "vendor", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.135] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404869, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.135] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:17:14Z", "value" => "kiosk_launcher"} [2026-07-13 07:14:00.152] [DEBUG] QUERY OK db=17.1ms idle=20.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "kiosk_launcher", "model", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.153] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404870, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.153] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:17:14Z", "value" => "1.0"} [2026-07-13 07:14:00.178] [DEBUG] QUERY OK db=24.0ms queue=1.2ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "1.0", "app_version", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404871, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.179] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:17:14Z", "value" => "13"} [2026-07-13 07:14:00.212] [DEBUG] QUERY OK db=32.5ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "13", "android_version", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.213] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404872, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.213] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:17:14Z", "value" => "959"} [2026-07-13 07:14:00.231] [DEBUG] QUERY OK db=17.8ms queue=0.1ms idle=34.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "959", "ram_free_mb", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.232] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404873, itemkey: "ram_free_mb", value: "959", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.232] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:17:14Z", "value" => "WIFI"} [2026-07-13 07:14:00.263] [DEBUG] QUERY OK db=30.9ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "WIFI", "network_type", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.264] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404874, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.264] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:17:14Z", "value" => "true"} [2026-07-13 07:14:00.288] [DEBUG] QUERY OK db=23.4ms idle=33.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "true", "kiosk_active", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.288] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404875, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.288] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:17:14Z", "value" => ""} [2026-07-13 07:14:00.331] [DEBUG] QUERY OK db=42.2ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:17:14Z", "sim_operator", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.332] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404876, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.332] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"} [2026-07-13 07:14:00.370] [DEBUG] QUERY OK db=37.2ms idle=45.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "UNKNOWN", "sim_number", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.370] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404877, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.371] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"} [2026-07-13 07:14:00.478] [DEBUG] QUERY OK db=106.8ms idle=39.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "UNKNOWN", "sim_iccid", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.478] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404878, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.478] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"} [2026-07-13 07:14:00.503] [DEBUG] QUERY OK db=23.9ms idle=34.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "UNKNOWN", "sim_imsi", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.503] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404879, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.503] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"} [2026-07-13 07:14:00.537] [DEBUG] QUERY OK db=33.0ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "UNKNOWN", "sim_iccid2", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.539] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404880, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.539] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:17:14Z", "value" => "UNKNOWN"} [2026-07-13 07:14:00.564] [DEBUG] QUERY OK db=21.2ms queue=0.1ms idle=39.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "UNKNOWN", "sim_imsi2", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.564] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404881, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.564] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:17:14Z", "value" => "1"} [2026-07-13 07:14:00.582] [DEBUG] QUERY OK db=16.8ms idle=27.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "1", "data_usage_mb", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404882, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.582] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:17:14Z", "value" => "0"} [2026-07-13 07:14:00.605] [DEBUG] QUERY OK db=22.4ms idle=18.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "0", "mobile_data_mb", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.605] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404883, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:00.606] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:17:14Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:14:00.641] [DEBUG] QUERY OK db=33.2ms idle=26.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:14Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47076, ~N[2026-07-13 07:14:00], ~N[2026-07-13 07:14:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:00.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404884, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:17:14Z", message: nil, status_log_id: 47076, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:00], updated_at: ~N[2026-07-13 07:14:00]}} [2026-07-13 07:14:30.097] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:14:30.097] [INFO ] Incoming JSON payload: {"oid":"539cbde5-23cf-44be-8271-9f3b309b80af","sn":"98251226730001","uploadTime":"2026-07-13T15:17:44Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"ram_free_mb","value":"953","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:17:44Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:14:30.099] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "539cbde5-23cf-44be-8271-9f3b309b80af", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:17:44Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:17:44Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:17:44Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:17:44Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:17:44Z", "value" => "953"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:17:44Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:17:44Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:17:44Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:17:44Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:17:44Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:17:44Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:17:44Z", "vendor" => "morefun"} [2026-07-13 07:14:30.099] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:14:30.100] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:14:30.100] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:14:30.103] [DEBUG] QUERY OK source="parameter_templates" db=2.8ms idle=1163.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:14:30.104] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=555.9ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:14:30.104] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:14:30.107] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=1.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:14:30.107] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:14:30.124] [DEBUG] QUERY OK source="tms_terminals" db=16.2ms idle=3.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:14:30], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:14:30.124] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:14:30.125] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=17.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:14:30.152] [DEBUG] QUERY OK source="tms_terminals" db=25.1ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:14:30], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:14:30.184] [DEBUG] QUERY OK db=31.8ms idle=27.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "539cbde5-23cf-44be-8271-9f3b309b80af", "2026-07-13T15:17:44Z", ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:14:30.184] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47077, oid: "539cbde5-23cf-44be-8271-9f3b309b80af", upload_time: "2026-07-13T15:17:44Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]} [2026-07-13 07:14:30.185] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:17:44Z", "value" => "morefun"} [2026-07-13 07:14:30.210] [DEBUG] QUERY OK db=25.1ms idle=34.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "morefun", "vendor", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.211] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404885, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.212] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:17:44Z", "value" => "kiosk_launcher"} [2026-07-13 07:14:30.241] [DEBUG] QUERY OK db=28.6ms idle=28.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "kiosk_launcher", "model", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.242] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404886, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.242] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:17:44Z", "value" => "1.0"} [2026-07-13 07:14:30.261] [DEBUG] QUERY OK db=18.0ms idle=33.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "1.0", "app_version", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.262] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404887, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.262] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:17:44Z", "value" => "13"} [2026-07-13 07:14:30.288] [DEBUG] QUERY OK db=25.8ms idle=20.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "13", "android_version", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.289] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404888, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.289] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:17:44Z", "value" => "953"} [2026-07-13 07:14:30.314] [DEBUG] QUERY OK db=24.6ms idle=27.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "953", "ram_free_mb", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.315] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404889, itemkey: "ram_free_mb", value: "953", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.315] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:17:44Z", "value" => "WIFI"} [2026-07-13 07:14:30.339] [DEBUG] QUERY OK db=23.2ms idle=27.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "WIFI", "network_type", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.339] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404890, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.339] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:17:44Z", "value" => "true"} [2026-07-13 07:14:30.372] [DEBUG] QUERY OK db=32.0ms idle=25.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "true", "kiosk_active", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.372] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404891, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.372] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:17:44Z", "value" => ""} [2026-07-13 07:14:30.510] [DEBUG] QUERY OK db=137.0ms idle=33.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:17:44Z", "sim_operator", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.510] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404892, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.510] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"} [2026-07-13 07:14:30.543] [DEBUG] QUERY OK db=32.2ms idle=138.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "UNKNOWN", "sim_number", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.543] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404893, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.543] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"} [2026-07-13 07:14:30.567] [DEBUG] QUERY OK db=23.4ms idle=33.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "UNKNOWN", "sim_iccid", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.567] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404894, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.567] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"} [2026-07-13 07:14:30.589] [DEBUG] QUERY OK db=20.5ms idle=17.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "UNKNOWN", "sim_imsi", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.590] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404895, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.590] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"} [2026-07-13 07:14:30.613] [DEBUG] QUERY OK db=23.2ms idle=23.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "UNKNOWN", "sim_iccid2", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.613] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404896, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.614] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:17:44Z", "value" => "UNKNOWN"} [2026-07-13 07:14:30.642] [DEBUG] QUERY OK db=28.5ms idle=24.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "UNKNOWN", "sim_imsi2", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404897, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.643] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:17:44Z", "value" => "1"} [2026-07-13 07:14:30.667] [DEBUG] QUERY OK db=23.6ms idle=29.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "1", "data_usage_mb", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.667] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404898, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.667] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:17:44Z", "value" => "0"} [2026-07-13 07:14:30.697] [DEBUG] QUERY OK db=29.8ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "0", "mobile_data_mb", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.698] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404899, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:14:30.699] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:17:44Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:14:30.716] [DEBUG] QUERY OK db=16.5ms idle=32.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:17:44Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47077, ~N[2026-07-13 07:14:30], ~N[2026-07-13 07:14:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:14:30.717] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404900, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:17:44Z", message: nil, status_log_id: 47077, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:14:30], updated_at: ~N[2026-07-13 07:14:30]}} [2026-07-13 07:15:00.475] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:15:00.475] [INFO ] Incoming JSON payload: {"oid":"8f4102bf-e5ba-4f89-b260-dd7236dd35a0","sn":"98251226730001","uploadTime":"2026-07-13T15:18:14Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"ram_free_mb","value":"954","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:18:14Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:15:00.476] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "8f4102bf-e5ba-4f89-b260-dd7236dd35a0", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:18:14Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:18:14Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:18:14Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:18:14Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:18:14Z", "value" => "954"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:18:14Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:18:14Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:18:14Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:18:14Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:18:14Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:18:14Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:18:14Z", "vendor" => "morefun"} [2026-07-13 07:15:00.476] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:15:00.476] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:15:00.476] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:15:00.477] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=376.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:15:00.477] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=364.5ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:15:00.477] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:15:00.479] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.7ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:15:00.479] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:15:00.497] [DEBUG] QUERY OK source="tms_terminals" db=17.4ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:15:00], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:15:00.497] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:15:00.498] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=18.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:15:00.533] [DEBUG] QUERY OK source="tms_terminals" db=34.2ms queue=0.1ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:15:00], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:15:00.556] [DEBUG] QUERY OK db=22.5ms idle=34.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "8f4102bf-e5ba-4f89-b260-dd7236dd35a0", "2026-07-13T15:18:14Z", ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:15:00.556] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47078, oid: "8f4102bf-e5ba-4f89-b260-dd7236dd35a0", upload_time: "2026-07-13T15:18:14Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]} [2026-07-13 07:15:00.556] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:18:14Z", "value" => "morefun"} [2026-07-13 07:15:00.571] [DEBUG] QUERY OK db=14.5ms idle=23.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "morefun", "vendor", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.573] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404901, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.574] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:18:14Z", "value" => "kiosk_launcher"} [2026-07-13 07:15:00.588] [DEBUG] QUERY OK db=14.4ms idle=18.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "kiosk_launcher", "model", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.589] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404902, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.589] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:18:14Z", "value" => "1.0"} [2026-07-13 07:15:00.623] [DEBUG] QUERY OK db=34.0ms idle=18.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "1.0", "app_version", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.623] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404903, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.624] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:18:14Z", "value" => "13"} [2026-07-13 07:15:00.656] [DEBUG] QUERY OK db=31.8ms idle=35.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "13", "android_version", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.656] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404904, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.656] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:18:14Z", "value" => "954"} [2026-07-13 07:15:00.676] [DEBUG] QUERY OK db=17.8ms idle=2.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "954", "ram_free_mb", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.678] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404905, itemkey: "ram_free_mb", value: "954", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.678] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:18:14Z", "value" => "WIFI"} [2026-07-13 07:15:00.697] [DEBUG] QUERY OK db=18.7ms idle=2.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "WIFI", "network_type", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.697] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404906, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.697] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:18:14Z", "value" => "true"} [2026-07-13 07:15:00.732] [DEBUG] QUERY OK db=32.1ms idle=10.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "true", "kiosk_active", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.732] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404907, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.732] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:18:14Z", "value" => ""} [2026-07-13 07:15:00.756] [DEBUG] QUERY OK db=23.3ms idle=36.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:18:14Z", "sim_operator", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.757] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404908, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.757] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"} [2026-07-13 07:15:00.778] [DEBUG] QUERY OK db=20.9ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "UNKNOWN", "sim_number", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404909, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.778] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"} [2026-07-13 07:15:00.807] [DEBUG] QUERY OK db=27.7ms idle=22.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "UNKNOWN", "sim_iccid", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.807] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404910, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.807] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"} [2026-07-13 07:15:00.842] [DEBUG] QUERY OK db=34.4ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "UNKNOWN", "sim_imsi", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.842] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404911, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.842] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"} [2026-07-13 07:15:00.861] [DEBUG] QUERY OK db=18.1ms queue=0.2ms idle=36.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "UNKNOWN", "sim_iccid2", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.861] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404912, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.861] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:18:14Z", "value" => "UNKNOWN"} [2026-07-13 07:15:00.875] [DEBUG] QUERY OK db=13.5ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "UNKNOWN", "sim_imsi2", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.876] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404913, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.876] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:18:14Z", "value" => "1"} [2026-07-13 07:15:00.901] [DEBUG] QUERY OK db=25.1ms idle=15.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "1", "data_usage_mb", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.902] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404914, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.902] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:18:14Z", "value" => "0"} [2026-07-13 07:15:00.935] [DEBUG] QUERY OK db=32.8ms idle=26.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "0", "mobile_data_mb", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.936] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404915, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:00.937] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:18:14Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:15:00.962] [DEBUG] QUERY OK db=23.7ms idle=36.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:14Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47078, ~N[2026-07-13 07:15:00], ~N[2026-07-13 07:15:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:00.963] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404916, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:18:14Z", message: nil, status_log_id: 47078, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:00], updated_at: ~N[2026-07-13 07:15:00]}} [2026-07-13 07:15:15.326] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 07:15:15.329] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms queue=0.1ms idle=572.5ms 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-07-13 07:15:15.330] [DEBUG] QUERY OK source="filter_usage" db=1.4ms idle=388.2ms 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-07-13 07:15:15.331] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 07:15:16.273] [INFO ] Running offline device check... [2026-07-13 07:15:16.273] [INFO ] Starting offline device check... [2026-07-13 07:15:16.275] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.1ms idle=635.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:15:16.286] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms idle=519.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.294] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=11.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.298] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms queue=0.1ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.300] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.301] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.307] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.314] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms queue=1.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.321] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.323] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.336] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=14.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.348] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.350] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.375] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.4ms queue=1.8ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=23.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.379] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.381] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.384] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.387] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=0.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.403] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.2ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=17.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.414] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.424] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.426] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.2ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.431] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms queue=0.4ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.5ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.440] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.442] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.448] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.451] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms queue=0.4ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.460] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.462] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:15:16.466] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:15:16.466] [INFO ] Offline device check completed successfully [2026-07-13 07:15:30.595] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:15:30.596] [INFO ] Incoming JSON payload: {"oid":"4ce6dc41-d9dc-476e-bc96-94eff165491e","sn":"98251226730001","uploadTime":"2026-07-13T15:18:45Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"ram_free_mb","value":"952","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:18:45Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:15:30.597] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "4ce6dc41-d9dc-476e-bc96-94eff165491e", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:18:45Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:18:45Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:18:45Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:18:45Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:18:45Z", "value" => "952"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:18:45Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:18:45Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:18:45Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:18:45Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:18:45Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:18:45Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:18:45Z", "vendor" => "morefun"} [2026-07-13 07:15:30.597] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:15:30.597] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:15:30.597] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:15:30.599] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms idle=1655.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:15:30.599] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=802.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:15:30.599] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:15:30.600] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:15:30.600] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:15:30.619] [DEBUG] QUERY OK source="tms_terminals" db=18.6ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:15:30], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:15:30.620] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:15:30.621] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=19.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:15:30.645] [DEBUG] QUERY OK source="tms_terminals" db=23.9ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:15:30], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:15:30.680] [DEBUG] QUERY OK db=34.2ms idle=24.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "4ce6dc41-d9dc-476e-bc96-94eff165491e", "2026-07-13T15:18:45Z", ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:15:30.680] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47079, oid: "4ce6dc41-d9dc-476e-bc96-94eff165491e", upload_time: "2026-07-13T15:18:45Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]} [2026-07-13 07:15:30.680] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:18:45Z", "value" => "morefun"} [2026-07-13 07:15:30.703] [DEBUG] QUERY OK db=22.6ms idle=35.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "morefun", "vendor", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.703] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404917, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.703] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:18:45Z", "value" => "kiosk_launcher"} [2026-07-13 07:15:30.726] [DEBUG] QUERY OK db=22.5ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "kiosk_launcher", "model", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.727] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404918, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.727] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:18:45Z", "value" => "1.0"} [2026-07-13 07:15:30.743] [DEBUG] QUERY OK db=15.1ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "1.0", "app_version", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.743] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404919, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.743] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:18:45Z", "value" => "13"} [2026-07-13 07:15:30.766] [DEBUG] QUERY OK db=22.6ms queue=0.1ms idle=17.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "13", "android_version", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.766] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404920, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.766] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:18:45Z", "value" => "952"} [2026-07-13 07:15:30.799] [DEBUG] QUERY OK db=31.9ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "952", "ram_free_mb", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.799] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404921, itemkey: "ram_free_mb", value: "952", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.799] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:18:45Z", "value" => "WIFI"} [2026-07-13 07:15:30.822] [DEBUG] QUERY OK db=22.7ms idle=0.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "WIFI", "network_type", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.822] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404922, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.822] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:18:45Z", "value" => "true"} [2026-07-13 07:15:30.852] [DEBUG] QUERY OK db=29.1ms idle=21.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "true", "kiosk_active", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.852] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404923, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.853] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:18:45Z", "value" => ""} [2026-07-13 07:15:30.878] [DEBUG] QUERY OK db=25.0ms idle=30.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:18:45Z", "sim_operator", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.878] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404924, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.878] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"} [2026-07-13 07:15:30.911] [DEBUG] QUERY OK db=32.6ms idle=26.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "UNKNOWN", "sim_number", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.912] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404925, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.912] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"} [2026-07-13 07:15:30.935] [DEBUG] QUERY OK db=22.5ms queue=0.1ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "UNKNOWN", "sim_iccid", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.935] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404926, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.936] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"} [2026-07-13 07:15:30.959] [DEBUG] QUERY OK db=22.8ms idle=24.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "UNKNOWN", "sim_imsi", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.959] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404927, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.959] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"} [2026-07-13 07:15:30.982] [DEBUG] QUERY OK db=22.5ms queue=0.1ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "UNKNOWN", "sim_iccid2", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:30.982] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404928, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:30.983] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:18:45Z", "value" => "UNKNOWN"} [2026-07-13 07:15:31.007] [DEBUG] QUERY OK db=23.5ms queue=0.1ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "UNKNOWN", "sim_imsi2", 47079, ~N[2026-07-13 07:15:30], ~N[2026-07-13 07:15:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:31.007] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404929, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:30], updated_at: ~N[2026-07-13 07:15:30]}} [2026-07-13 07:15:31.007] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:18:45Z", "value" => "1"} [2026-07-13 07:15:31.036] [DEBUG] QUERY OK db=28.0ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "1", "data_usage_mb", 47079, ~N[2026-07-13 07:15:31], ~N[2026-07-13 07:15:31]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:31.036] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404930, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:31], updated_at: ~N[2026-07-13 07:15:31]}} [2026-07-13 07:15:31.036] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:18:45Z", "value" => "0"} [2026-07-13 07:15:31.072] [DEBUG] QUERY OK db=35.6ms queue=0.1ms idle=30.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "0", "mobile_data_mb", 47079, ~N[2026-07-13 07:15:31], ~N[2026-07-13 07:15:31]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:31.073] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404931, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:31], updated_at: ~N[2026-07-13 07:15:31]}} [2026-07-13 07:15:31.076] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:18:45Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:15:31.096] [DEBUG] QUERY OK db=18.0ms queue=0.3ms idle=40.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:18:45Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47079, ~N[2026-07-13 07:15:31], ~N[2026-07-13 07:15:31]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:15:31.096] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404932, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:18:45Z", message: nil, status_log_id: 47079, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:15:31], updated_at: ~N[2026-07-13 07:15:31]}} [2026-07-13 07:20:16.466] [INFO ] Running offline device check... [2026-07-13 07:20:16.467] [INFO ] Starting offline device check... [2026-07-13 07:20:16.468] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=483.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:20:16.477] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=382.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.484] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms queue=0.1ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.486] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.487] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.493] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.5ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.496] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.2ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.497] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.499] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.515] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.0ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.520] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.524] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.4ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.540] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.7ms queue=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.542] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.542] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.544] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.546] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.559] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.560] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=13.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.561] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.568] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.576] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.577] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.578] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.580] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.582] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.583] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.584] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.586] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:20:16.586] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:20:16.586] [INFO ] Offline device check completed successfully [2026-07-13 07:25:16.588] [INFO ] Running offline device check... [2026-07-13 07:25:16.588] [INFO ] Starting offline device check... [2026-07-13 07:25:16.589] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=576.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:25:16.602] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=57.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.611] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=13.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.617] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.5ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.621] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.622] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.626] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.628] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.636] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.645] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.649] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.651] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.652] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.657] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.677] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.2ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.679] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=20.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.680] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.681] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.683] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.699] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=13.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.707] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.711] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=2.1ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.714] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.715] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.720] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.721] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.724] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.726] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.730] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.734] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:25:16.736] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:25:16.736] [INFO ] Offline device check completed successfully [2026-07-13 07:30:15.331] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 07:30:15.333] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=532.9ms 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-07-13 07:30:15.333] [DEBUG] QUERY OK source="filter_usage" db=0.4ms idle=284.9ms 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-07-13 07:30:15.333] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 07:30:16.737] [INFO ] Running offline device check... [2026-07-13 07:30:16.738] [INFO ] Starting offline device check... [2026-07-13 07:30:16.741] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=1404.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:30:16.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=938.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.756] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.758] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.759] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.761] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.765] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.770] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.782] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.787] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=11.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.792] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.792] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.808] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.820] [DEBUG] QUERY OK source="tms_terminals" db=11.9ms idle=1.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:30:16], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 07:30:16.821] [INFO ] Terminal 98250623730001 back online [2026-07-13 07:30:16.822] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=12.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.823] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.843] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.845] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=17.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.846] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.853] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.854] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.857] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.859] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.864] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.865] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.870] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.871] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.871] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.873] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:30:16.874] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 07:30:16.874] [INFO ] Offline device check completed successfully [2026-07-13 07:30:32.283] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 07:30:32.283] [INFO ] Incoming JSON payload: {"oid":"00b75270-7b2e-4371-8a51-3f82e1937f62","sn":"98251226730001","uploadTime":"2026-07-13T15:33:46Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"ram_free_mb","value":"961","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T15:33:46Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 07:30:32.285] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "00b75270-7b2e-4371-8a51-3f82e1937f62", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:33:46Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T15:33:46Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:33:46Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:33:46Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:33:46Z", "value" => "961"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:33:46Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:33:46Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:33:46Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:33:46Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:33:46Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:33:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T15:33:46Z", "vendor" => "morefun"} [2026-07-13 07:30:32.285] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 07:30:32.285] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 07:30:32.285] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 07:30:32.286] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=432.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:30:32.287] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=369.0ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 07:30:32.287] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 07:30:32.288] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:30:32.288] [INFO ] Terminal updated: 98251226730001 [2026-07-13 07:30:32.308] [DEBUG] QUERY OK source="tms_terminals" db=19.4ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:30:32], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:30:32.308] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 07:30:32.310] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.1ms idle=20.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:30:32.345] [DEBUG] QUERY OK source="tms_terminals" db=34.2ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:30:32], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:30:32.369] [DEBUG] QUERY OK db=24.2ms idle=35.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "00b75270-7b2e-4371-8a51-3f82e1937f62", "2026-07-13T15:33:46Z", ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:30:32.370] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47080, oid: "00b75270-7b2e-4371-8a51-3f82e1937f62", upload_time: "2026-07-13T15:33:46Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]} [2026-07-13 07:30:32.371] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T15:33:46Z", "value" => "morefun"} [2026-07-13 07:30:32.385] [DEBUG] QUERY OK db=12.8ms idle=27.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "morefun", "vendor", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.386] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404933, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.386] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T15:33:46Z", "value" => "kiosk_launcher"} [2026-07-13 07:30:32.410] [DEBUG] QUERY OK db=22.5ms idle=17.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "kiosk_launcher", "model", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.410] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404934, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.410] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T15:33:46Z", "value" => "1.0"} [2026-07-13 07:30:32.445] [DEBUG] QUERY OK db=34.7ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "1.0", "app_version", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.446] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404935, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.446] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T15:33:46Z", "value" => "13"} [2026-07-13 07:30:32.463] [DEBUG] QUERY OK db=17.0ms idle=36.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "13", "android_version", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.463] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404936, itemkey: "android_version", value: "13", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.464] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T15:33:46Z", "value" => "961"} [2026-07-13 07:30:32.477] [DEBUG] QUERY OK db=13.0ms idle=18.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "961", "ram_free_mb", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.477] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404937, itemkey: "ram_free_mb", value: "961", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.477] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T15:33:46Z", "value" => "WIFI"} [2026-07-13 07:30:32.494] [DEBUG] QUERY OK db=15.2ms idle=16.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "WIFI", "network_type", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.495] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404938, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.496] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T15:33:46Z", "value" => "true"} [2026-07-13 07:30:32.526] [DEBUG] QUERY OK db=29.8ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "true", "kiosk_active", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.526] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404939, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.526] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T15:33:46Z", "value" => ""} [2026-07-13 07:30:32.559] [DEBUG] QUERY OK db=31.8ms idle=32.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T15:33:46Z", "sim_operator", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.559] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404940, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.560] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"} [2026-07-13 07:30:32.577] [DEBUG] QUERY OK db=13.5ms queue=1.5ms idle=35.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "UNKNOWN", "sim_number", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.578] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404941, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.578] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"} [2026-07-13 07:30:32.593] [DEBUG] QUERY OK db=14.5ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "UNKNOWN", "sim_iccid", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.593] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404942, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.593] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"} [2026-07-13 07:30:32.612] [DEBUG] QUERY OK db=18.1ms idle=16.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "UNKNOWN", "sim_imsi", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.612] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404943, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.612] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"} [2026-07-13 07:30:32.642] [DEBUG] QUERY OK db=29.9ms idle=20.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "UNKNOWN", "sim_iccid2", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404944, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.643] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T15:33:46Z", "value" => "UNKNOWN"} [2026-07-13 07:30:32.667] [DEBUG] QUERY OK db=24.0ms idle=31.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "UNKNOWN", "sim_imsi2", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.667] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404945, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.668] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T15:33:46Z", "value" => "1"} [2026-07-13 07:30:32.683] [DEBUG] QUERY OK db=14.4ms idle=26.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "1", "data_usage_mb", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.683] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404946, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.683] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T15:33:46Z", "value" => "0"} [2026-07-13 07:30:32.695] [DEBUG] QUERY OK db=10.8ms idle=16.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "0", "mobile_data_mb", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.695] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404947, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:30:32.696] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T15:33:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 07:30:32.777] [DEBUG] QUERY OK db=80.9ms idle=12.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T15:33:46Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47080, ~N[2026-07-13 07:30:32], ~N[2026-07-13 07:30:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:30:32.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404948, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T15:33:46Z", message: nil, status_log_id: 47080, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:30:32], updated_at: ~N[2026-07-13 07:30:32]}} [2026-07-13 07:35:16.874] [INFO ] Running offline device check... [2026-07-13 07:35:16.875] [INFO ] Starting offline device check... [2026-07-13 07:35:16.876] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=812.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:35:16.884] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=27.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.898] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.899] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.901] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.912] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.921] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.927] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.970] [DEBUG] QUERY OK source="tms_terminals" db=25.1ms idle=15.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:35:16], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 07:35:16.970] [INFO ] Terminal 98250623730001 back online [2026-07-13 07:35:16.972] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=26.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.975] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.978] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.979] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.993] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.994] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=14.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:16.995] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.002] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.003] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.007] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.008] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.011] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.012] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.013] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms decode=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.019] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:35:17.022] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 07:35:17.022] [INFO ] Offline device check completed successfully [2026-07-13 07:36:57.977] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:36:57.977] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:46:48Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:46:48Z","value":"25"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:46:48Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:46:48Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:46:48Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:46:48Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:46:48Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:46:48Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:46:48Z","vendor":"MoreFun"} [2026-07-13 07:36:57.978] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:46:48Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:46:48Z", "value" => "25"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:46:48Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:46:48Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:46:48Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:46:48Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:46:48Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:46:48Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:46:48Z", "vendor" => "MoreFun"} [2026-07-13 07:36:57.979] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:36:57.979] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:36:57.979] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:36:57.980] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.1ms idle=902.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:36:57.981] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=755.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:36:57.982] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms queue=0.1ms idle=1.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:36:57.984] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=0.4ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:36:57.984] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=2.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:36:58.025] [DEBUG] QUERY OK source="pos_merchant" db=40.4ms idle=1.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:36:58.027] [DEBUG] QUERY OK db=1.1ms queue=0.7ms idle=1961.5ms 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 ["501983400000000"] [2026-07-13 07:36:58.027] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:36:58.029] [DEBUG] QUERY OK source="pos_terminal_data" db=1.4ms idle=43.2ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:36:58.030] [DEBUG] QUERY OK source="address" db=0.6ms idle=4.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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:36:58.031] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:36:58.034] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:36:58.060] [DEBUG] QUERY OK db=24.5ms idle=6.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "2a034753211ac77911142f35bbaff9c4d0aa16e8a8c30158aa2a58ef91765f37", 9762, 916, ~U[2026-07-13 07:36:58Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:36:58.061] [INFO ] AutoPushService: Created push log 33517 for MF919 params.zip [2026-07-13 07:36:58.061] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 9762, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:36:58.062] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:36:58.062] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:36:58.066] [DEBUG] QUERY OK source="config_file_versions" db=3.8ms idle=31.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:36:58.073] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:36:58.098] [DEBUG] QUERY OK db=22.3ms idle=15.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "f001aaa9e343e9f24bbad281497133e7c83ce9c6faec49d5d5528d220cf13b4a", 9826, 17947, ~U[2026-07-13 07:36:58Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:36:58.098] [INFO ] AutoPushService: Created push log 33518 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:36:58.099] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 9826, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:36:58.099] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:36:58.099] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:36:58.100] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=33.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:36:58.100] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:36:58.101] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.2ms idle=2.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:36:58.102] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:36:58.104] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:36:58.104] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:36:58.106] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:36:58.107] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms idle=5.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:36:58.109] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:36:58.109] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:36:58.111] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=8.3ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:36:58.111] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:36:58.141] [DEBUG] QUERY OK source="tms_terminals" db=29.7ms idle=4.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:36:58], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:36:58.142] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=30.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:36:58.145] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:36:58.146] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=3.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:36:58.148] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:36:58.199] [DEBUG] QUERY OK source="parameter_push_logs" db=48.3ms idle=5.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 [19, "application", ~N[2026-07-13 07:06:58]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:36:58.199] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:36:58.199] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:36:58.200] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=53.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:36:58.202] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.1ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:36:58.202] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:36:58.203] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:36:58.231] [DEBUG] QUERY OK source="tms_terminals" db=27.1ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:36:58], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:36:58.259] [DEBUG] QUERY OK db=26.7ms queue=0.5ms idle=4.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:46:48Z", ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:36:58.259] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47081, oid: "organization_id", upload_time: "2026-07-12T22:46:48Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]} [2026-07-13 07:36:58.259] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:46:48Z", "value" => "online"} [2026-07-13 07:36:58.288] [DEBUG] QUERY OK db=28.4ms idle=28.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:46:48Z", "online", "status", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.288] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404949, itemkey: "status", value: "online", timestamp: "2026-07-12T22:46:48Z", message: "Terminal status update", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.289] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:36:58.291] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=32.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:36:58], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 07:36:58.292] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:46:48Z", "value" => "25"} [2026-07-13 07:36:58.326] [DEBUG] QUERY OK db=33.3ms idle=4.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:46:48Z", "25", "battery", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.327] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404950, itemkey: "battery", value: "25", timestamp: "2026-07-12T22:46:48Z", message: "Battery level", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.327] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:46:48Z", "value" => "online"} [2026-07-13 07:36:58.351] [DEBUG] QUERY OK db=23.8ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:46:48Z", "online", "network", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.352] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404951, itemkey: "network", value: "online", timestamp: "2026-07-12T22:46:48Z", message: "Network connectivity", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.352] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:36:58.353] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=26.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:36:58], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 07:36:58.354] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:46:48Z", "value" => "0"} [2026-07-13 07:36:58.378] [DEBUG] QUERY OK db=22.8ms idle=4.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:46:48Z", "0", "cpu", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.378] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404952, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:46:48Z", message: "CPU usage percentage", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.378] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:46:48Z", "value" => "1.0.0"} [2026-07-13 07:36:58.415] [DEBUG] QUERY OK db=36.4ms idle=25.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:46:48Z", "1.0.0", "parameter_config", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.415] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404953, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:46:48Z", message: "Current parameters version", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.415] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:46:48Z", "value" => "1.0.1"} [2026-07-13 07:36:58.448] [DEBUG] QUERY OK db=32.5ms idle=37.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:46:48Z", "1.0.1", "emv_config", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.449] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404954, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:46:48Z", message: "Current EMV config version", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.449] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:46:48Z", "value" => ""} [2026-07-13 07:36:58.507] [DEBUG] QUERY OK db=15.2ms queue=41.2ms idle=2.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:46:48Z", "keys_config", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.507] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404955, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:46:48Z", message: "Current keys config version", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.508] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:46:48Z", "value" => "1.0.0"} [2026-07-13 07:36:58.542] [DEBUG] QUERY OK db=33.8ms idle=48.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:46:48Z", "1.0.0", "application", 47081, ~N[2026-07-13 07:36:58], ~N[2026-07-13 07:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:36:58.543] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404956, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:46:48Z", message: "Current application version", status_log_id: 47081, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:36:58], updated_at: ~N[2026-07-13 07:36:58]}} [2026-07-13 07:36:58.544] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=36.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:36:58], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 07:36:58.544] [WARN ] Unexpected async result [2026-07-13 07:36:58.544] [WARN ] Unexpected async result [2026-07-13 07:37:02.289] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 07:37:02.289] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T22:46:52Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T22:46:52Z","value":"25"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T22:46:52Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T22:46:52Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T22:46:52Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T22:46:52Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T22:46:52Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T22:46:52Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T22:46:52Z","vendor":"MoreFun"} [2026-07-13 07:37:02.291] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:46:52Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:46:52Z", "value" => "25"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:46:52Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:46:52Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:46:52Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:46:52Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:46:52Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:46:52Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T22:46:52Z", "vendor" => "MoreFun"} [2026-07-13 07:37:02.291] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 07:37:02.291] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 07:37:02.291] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 07:37:02.295] [DEBUG] QUERY OK source="parameter_templates" db=3.5ms idle=214.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 07:37:02.296] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.2ms idle=50.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 07:37:02.298] [DEBUG] QUERY OK source="parameter_template_values" db=1.9ms idle=2.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:37:02.304] [DEBUG] QUERY OK source="parameter_definitions" db=2.0ms queue=3.2ms idle=2.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 07:37:02.308] [DEBUG] QUERY OK source="pos_terminal" db=3.3ms idle=6.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 07:37:02.346] [DEBUG] QUERY OK source="pos_merchant" db=37.6ms queue=0.2ms idle=4.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 07:37:02.351] [DEBUG] QUERY OK db=3.5ms queue=0.7ms idle=1278.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 ["501983400000000"] [2026-07-13 07:37:02.351] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 07:37:02.353] [DEBUG] QUERY OK source="pos_terminal_data" db=1.5ms idle=44.5ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 07:37:02.355] [DEBUG] QUERY OK source="address" db=1.6ms queue=0.4ms idle=6.7ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 07:37:02.356] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 07:37:02.358] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 07:37:02.390] [DEBUG] QUERY OK db=28.4ms idle=7.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "42773acb33f94725d3fc5ed0cc3e4f28191baf5a97d94c19c0b98804664e1e4e", 9858, 916, ~U[2026-07-13 07:37:02Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 07:37:02.390] [INFO ] AutoPushService: Created push log 33519 for MF919 params.zip [2026-07-13 07:37:02.390] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 9858, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 07:37:02.391] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:37:02.392] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 07:37:02.397] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms queue=1.6ms idle=37.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 07:37:02.412] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 07:37:02.440] [DEBUG] QUERY OK db=25.0ms idle=26.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "20d1f36f5da60abaa99caddc64415a30f4a3e6b1d3239e33f8dc0bd84d3470b3", 9922, 17947, ~U[2026-07-13 07:37:02Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 07:37:02.440] [INFO ] AutoPushService: Created push log 33520 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 07:37:02.440] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 9922, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 07:37:02.441] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 07:37:02.441] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 07:37:02.445] [DEBUG] QUERY OK source="config_file_versions" db=2.2ms idle=43.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 07:37:02.445] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 07:37:02.449] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=5.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 07:37:02.449] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 07:37:02.456] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 07:37:02.459] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:37:02.459] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 07:37:02.462] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=15.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:37:02.465] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:37:02.465] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 07:37:02.471] [DEBUG] QUERY OK source="tms_terminals" db=6.3ms idle=16.3ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 07:37:02.472] [INFO ] Terminal updated: 98250623730001 [2026-07-13 07:37:02.498] [DEBUG] QUERY OK source="tms_terminals" db=22.7ms idle=12.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 07:37:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 07:37:02.500] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=27.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 07:37:02.505] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=1.6ms idle=2.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:37:02.506] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=0.1ms idle=4.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 07:37:02.506] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 07:37:02.535] [DEBUG] QUERY OK source="parameter_push_logs" db=28.8ms idle=3.4ms 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 [19, "application", ~N[2026-07-13 07:07:02]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 07:37:02.535] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 07:37:02.535] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 07:37:02.536] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=29.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 07:37:02.541] [DEBUG] QUERY OK source="config_file_versions" db=3.9ms idle=1.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 07:37:02.542] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 07:37:02.543] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=6.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 07:37:02.569] [DEBUG] QUERY OK source="tms_terminals" db=24.0ms queue=0.1ms idle=3.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:37:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 07:37:02.595] [DEBUG] QUERY OK db=26.3ms idle=25.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T22:46:52Z", ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 07:37:02.596] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47082, oid: "organization_id", upload_time: "2026-07-12T22:46:52Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]} [2026-07-13 07:37:02.596] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T22:46:52Z", "value" => "online"} [2026-07-13 07:37:02.632] [DEBUG] QUERY OK db=36.0ms idle=27.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T22:46:52Z", "online", "status", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.634] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404957, itemkey: "status", value: "online", timestamp: "2026-07-12T22:46:52Z", message: "Terminal status update", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.635] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 07:37:02.635] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T22:46:52Z", "value" => "25"} [2026-07-13 07:37:02.681] [DEBUG] QUERY OK db=44.6ms idle=40.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T22:46:52Z", "25", "battery", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.681] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404958, itemkey: "battery", value: "25", timestamp: "2026-07-12T22:46:52Z", message: "Battery level", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.681] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T22:46:52Z", "value" => "online"} [2026-07-13 07:37:02.727] [DEBUG] QUERY OK db=44.6ms idle=50.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T22:46:52Z", "online", "network", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.727] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404959, itemkey: "network", value: "online", timestamp: "2026-07-12T22:46:52Z", message: "Network connectivity", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.727] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 07:37:02.728] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T22:46:52Z", "value" => "0"} [2026-07-13 07:37:02.766] [DEBUG] QUERY OK db=35.4ms idle=50.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T22:46:52Z", "0", "cpu", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.767] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404960, itemkey: "cpu", value: "0", timestamp: "2026-07-12T22:46:52Z", message: "CPU usage percentage", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.767] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T22:46:52Z", "value" => "1.0.0"} [2026-07-13 07:37:02.822] [DEBUG] QUERY OK db=54.8ms idle=40.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T22:46:52Z", "1.0.0", "parameter_config", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.823] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404961, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T22:46:52Z", message: "Current parameters version", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.823] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T22:46:52Z", "value" => "1.0.1"} [2026-07-13 07:37:02.855] [DEBUG] QUERY OK db=31.0ms queue=1.1ms idle=56.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T22:46:52Z", "1.0.1", "emv_config", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.856] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404962, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T22:46:52Z", message: "Current EMV config version", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.856] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T22:46:52Z", "value" => ""} [2026-07-13 07:37:02.882] [DEBUG] QUERY OK db=23.7ms queue=2.5ms idle=33.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T22:46:52Z", "keys_config", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.882] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404963, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T22:46:52Z", message: "Current keys config version", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.883] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T22:46:52Z", "value" => "1.0.0"} [2026-07-13 07:37:02.919] [DEBUG] QUERY OK db=33.3ms queue=2.5ms idle=27.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T22:46:52Z", "1.0.0", "application", 47082, ~N[2026-07-13 07:37:02], ~N[2026-07-13 07:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 07:37:02.919] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404964, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T22:46:52Z", message: "Current application version", status_log_id: 47082, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 07:37:02], updated_at: ~N[2026-07-13 07:37:02]}} [2026-07-13 07:37:02.919] [WARN ] Unexpected async result [2026-07-13 07:37:02.920] [WARN ] Unexpected async result [2026-07-13 07:40:17.022] [INFO ] Running offline device check... [2026-07-13 07:40:17.023] [INFO ] Starting offline device check... [2026-07-13 07:40:17.024] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1139.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:40:17.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.6ms idle=138.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=11.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.045] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.046] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.048] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.049] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.050] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.051] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.056] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.062] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.065] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.075] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.7ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.079] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=10.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.081] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.085] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.104] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.0ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.105] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=18.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.106] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.107] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.124] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=13.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.135] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.136] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.140] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.140] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.145] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.147] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.150] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.151] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.152] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.153] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.154] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:40:17.154] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:40:17.154] [INFO ] Offline device check completed successfully [2026-07-13 07:45:15.334] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 07:45:15.336] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=412.4ms 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-07-13 07:45:15.339] [DEBUG] QUERY OK source="filter_usage" db=3.1ms idle=194.1ms 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-07-13 07:45:15.339] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 07:45:17.154] [INFO ] Running offline device check... [2026-07-13 07:45:17.155] [INFO ] Starting offline device check... [2026-07-13 07:45:17.157] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=225.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:45:17.167] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.7ms idle=15.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.177] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.0ms queue=0.1ms idle=10.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.179] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.181] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.184] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.185] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.186] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.187] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.189] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.196] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.205] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.211] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.214] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=2.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=24.7ms queue=0.2ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.246] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=25.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.247] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.248] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.254] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=24.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.280] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=24.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.297] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=14.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.316] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.319] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=1.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.321] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.324] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.324] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.327] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=1.8ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:45:17.334] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 07:45:17.334] [INFO ] Offline device check completed successfully [2026-07-13 07:50:15.432] [INFO ] Starting scheduled rule validation [2026-07-13 07:50:15.432] [DEBUG] Validating missing assignments [2026-07-13 07:50:15.434] [DEBUG] QUERY OK source="terminal_group_rules" db=0.9ms queue=0.8ms idle=438.0ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 07:50:15.435] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=268.1ms 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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 07:50:15.435] [DEBUG] Re-applied 0 rules during validation [2026-07-13 07:50:15.436] [DEBUG] Validating invalid assignments [2026-07-13 07:50:15.436] [DEBUG] Validating rule consistency [2026-07-13 07:50:15.436] [DEBUG] Updating group terminal counts [2026-07-13 07:50:15.436] [DEBUG] QUERY OK source="terminal_groups" db=0.4ms idle=1.8ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 07:50:15.439] [DEBUG] QUERY OK source="terminal_groups" db=2.1ms idle=1.5ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 07:50:15.439] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=2.5ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 07:50:15.440] [DEBUG] QUERY OK source="terminal_group_rules" db=0.9ms idle=0.7ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 07:50:15.441] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms idle=1.2ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 07:50:15.442] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.3ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 07:50:15.443] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 07:50:15.443] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms idle=0.9ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 07:50:15.444] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 07:50:15.444] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 07:50:17.337] [INFO ] Running offline device check... [2026-07-13 07:50:17.338] [INFO ] Starting offline device check... [2026-07-13 07:50:17.339] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=336.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:50:17.347] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=174.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=8.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.361] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=11.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.363] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.366] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.367] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.368] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.370] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.377] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.390] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=12.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.398] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.399] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.400] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.417] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=17.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.423] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.425] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.427] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.427] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.443] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.474] [DEBUG] QUERY OK source="tms_terminals" db=28.1ms idle=18.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:50:17], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 07:50:17.474] [INFO ] Terminal 98251226730001 back online [2026-07-13 07:50:17.476] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=32.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.477] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.486] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.487] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.493] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.497] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.499] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.500] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.501] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.502] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.503] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.508] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.8ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.510] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:50:17.510] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 07:50:17.510] [INFO ] Offline device check completed successfully [2026-07-13 07:55:17.510] [INFO ] Running offline device check... [2026-07-13 07:55:17.511] [INFO ] Starting offline device check... [2026-07-13 07:55:17.512] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.2ms idle=1328.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 07:55:17.523] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.9ms idle=472.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.531] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.1ms idle=11.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.533] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.534] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.535] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.535] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.536] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.536] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.537] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.543] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.544] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.553] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.557] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms queue=0.1ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.559] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.560] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.561] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.588] [DEBUG] QUERY OK source="tms_terminals" db=13.3ms idle=14.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:55:17], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 07:55:17.588] [INFO ] Terminal 98250623730001 back online [2026-07-13 07:55:17.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.593] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.594] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.595] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.614] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.640] [DEBUG] QUERY OK source="tms_terminals" db=23.6ms idle=21.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 07:55:17], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 07:55:17.640] [INFO ] Terminal 98251226730001 back online [2026-07-13 07:55:17.642] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=26.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.644] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.651] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.652] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.655] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.656] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.657] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.665] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.667] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.672] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 07:55:17.672] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 07:55:17.672] [INFO ] Offline device check completed successfully [2026-07-13 08:00:15.342] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 08:00:15.346] [DEBUG] QUERY OK source="tms_terminals" db=3.8ms queue=0.1ms idle=218.2ms 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-07-13 08:00:15.348] [DEBUG] QUERY OK source="filter_usage" db=0.8ms idle=129.6ms 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-07-13 08:00:15.348] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 08:00:17.672] [INFO ] Running offline device check... [2026-07-13 08:00:17.673] [INFO ] Starting offline device check... [2026-07-13 08:00:17.674] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.2ms idle=544.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:00:17.686] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.3ms idle=457.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.695] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.1ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.699] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.702] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.704] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.706] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.715] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.731] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.737] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=15.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.1ms queue=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.795] [DEBUG] QUERY OK source="tms_terminals" db=32.4ms idle=20.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:00:17], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:00:17.795] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:00:17.800] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms queue=0.3ms idle=33.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.806] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=0.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.809] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.810] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.847] [DEBUG] QUERY OK source="tms_terminals" db=16.0ms idle=20.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:00:17], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:00:17.847] [INFO ] Terminal 98251226730001 back online [2026-07-13 08:00:17.850] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.2ms idle=18.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.853] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.862] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.869] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.875] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.878] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=9.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.893] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.898] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.4ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.901] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:00:17.906] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 08:00:17.906] [INFO ] Offline device check completed successfully [2026-07-13 08:05:17.906] [INFO ] Running offline device check... [2026-07-13 08:05:17.907] [INFO ] Starting offline device check... [2026-07-13 08:05:17.908] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=734.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:05:17.918] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.4ms idle=655.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.926] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=10.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.932] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.934] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.935] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.937] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.940] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.945] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.946] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.959] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.964] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=12.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.966] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.968] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:17.988] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.012] [DEBUG] QUERY OK source="tms_terminals" db=24.3ms idle=20.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:05:17], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:05:18.013] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:05:18.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=25.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.016] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.069] [DEBUG] QUERY OK source="tms_terminals" db=29.6ms queue=0.1ms idle=17.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:05:18], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:05:18.069] [INFO ] Terminal 98251226730001 back online [2026-07-13 08:05:18.070] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=31.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.071] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.079] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.080] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.085] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.3ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.086] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.090] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.091] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.095] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.097] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.098] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.099] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.101] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:05:18.102] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 08:05:18.102] [INFO ] Offline device check completed successfully [2026-07-13 08:10:18.103] [INFO ] Running offline device check... [2026-07-13 08:10:18.104] [INFO ] Starting offline device check... [2026-07-13 08:10:18.105] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=960.2ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:10:18.114] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=819.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.122] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.130] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.132] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=1.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.133] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.134] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.135] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms queue=0.1ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.150] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.7ms queue=0.1ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms queue=0.1ms idle=13.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.172] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.174] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.190] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.208] [DEBUG] QUERY OK source="tms_terminals" db=17.1ms idle=16.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:10:18], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:10:18.208] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:10:18.209] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=18.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.211] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.214] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.227] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.239] [DEBUG] QUERY OK source="tms_terminals" db=12.2ms idle=13.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:10:18], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:10:18.240] [INFO ] Terminal 98251226730001 back online [2026-07-13 08:10:18.241] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=13.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.241] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.251] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.257] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.264] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.265] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.266] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.269] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.271] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.273] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.274] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:10:18.274] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 08:10:18.275] [INFO ] Offline device check completed successfully [2026-07-13 08:11:56.875] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:11:56.875] [INFO ] Incoming JSON payload: {"oid":"bf878c93-ce8f-40ca-8f68-57fd34d1b390","sn":"98251226730001","uploadTime":"2026-07-13T16:15:11Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"ram_free_mb","value":"955","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:15:11Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:11:56.878] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "bf878c93-ce8f-40ca-8f68-57fd34d1b390", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:15:11Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:15:11Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:15:11Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:15:11Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:15:11Z", "value" => "955"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:15:11Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:15:11Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:15:11Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:15:11Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:15:11Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:15:11Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:15:11Z", "vendor" => "morefun"} [2026-07-13 08:11:56.878] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:11:56.881] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:11:56.881] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:11:56.886] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=593.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:11:56.887] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=416.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:11:56.887] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:11:56.888] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=1.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:11:56.888] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:11:56.912] [DEBUG] QUERY OK source="tms_terminals" db=23.1ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:11:56], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:11:56.912] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:11:56.913] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=24.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:11:56.947] [DEBUG] QUERY OK source="tms_terminals" db=33.2ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:11:56], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:11:56.972] [DEBUG] QUERY OK db=24.0ms idle=34.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "bf878c93-ce8f-40ca-8f68-57fd34d1b390", "2026-07-13T16:15:11Z", ~N[2026-07-13 08:11:56], ~N[2026-07-13 08:11:56]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:11:56.972] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47083, oid: "bf878c93-ce8f-40ca-8f68-57fd34d1b390", upload_time: "2026-07-13T16:15:11Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:56], updated_at: ~N[2026-07-13 08:11:56]} [2026-07-13 08:11:56.972] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:15:11Z", "value" => "morefun"} [2026-07-13 08:11:57.027] [DEBUG] QUERY OK db=12.3ms queue=42.4ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "morefun", "vendor", 47083, ~N[2026-07-13 08:11:56], ~N[2026-07-13 08:11:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.028] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404965, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:56], updated_at: ~N[2026-07-13 08:11:56]}} [2026-07-13 08:11:57.028] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:15:11Z", "value" => "kiosk_launcher"} [2026-07-13 08:11:57.103] [DEBUG] QUERY OK db=34.0ms queue=40.6ms idle=57.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "kiosk_launcher", "model", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.104] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404966, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.104] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:15:11Z", "value" => "1.0"} [2026-07-13 08:11:57.130] [DEBUG] QUERY OK db=25.7ms idle=76.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "1.0", "app_version", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.130] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404967, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.130] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:15:11Z", "value" => "13"} [2026-07-13 08:11:57.160] [DEBUG] QUERY OK db=29.5ms idle=27.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "13", "android_version", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.161] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404968, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.161] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:15:11Z", "value" => "955"} [2026-07-13 08:11:57.239] [DEBUG] QUERY OK db=78.1ms idle=31.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "955", "ram_free_mb", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.240] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404969, itemkey: "ram_free_mb", value: "955", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.240] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:15:11Z", "value" => "WIFI"} [2026-07-13 08:11:57.264] [DEBUG] QUERY OK db=23.8ms idle=79.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "WIFI", "network_type", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.264] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404970, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.265] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:15:11Z", "value" => "true"} [2026-07-13 08:11:57.288] [DEBUG] QUERY OK db=23.1ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "true", "kiosk_active", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.289] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404971, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.289] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:15:11Z", "value" => ""} [2026-07-13 08:11:57.324] [DEBUG] QUERY OK db=35.2ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:15:11Z", "sim_operator", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.325] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404972, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.325] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"} [2026-07-13 08:11:57.361] [DEBUG] QUERY OK db=34.6ms queue=0.3ms idle=37.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "UNKNOWN", "sim_number", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.361] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404973, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.362] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"} [2026-07-13 08:11:57.385] [DEBUG] QUERY OK db=23.4ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "UNKNOWN", "sim_iccid", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.386] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404974, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.386] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"} [2026-07-13 08:11:57.408] [DEBUG] QUERY OK db=20.5ms idle=27.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "UNKNOWN", "sim_imsi", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.411] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404975, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.411] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"} [2026-07-13 08:11:57.425] [DEBUG] QUERY OK db=13.7ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "UNKNOWN", "sim_iccid2", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.426] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404976, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.426] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:15:11Z", "value" => "UNKNOWN"} [2026-07-13 08:11:57.446] [DEBUG] QUERY OK db=19.7ms idle=18.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "UNKNOWN", "sim_imsi2", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.447] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404977, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.447] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:15:11Z", "value" => "1"} [2026-07-13 08:11:57.471] [DEBUG] QUERY OK db=23.2ms idle=22.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "1", "data_usage_mb", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.471] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404978, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.473] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:15:11Z", "value" => "0"} [2026-07-13 08:11:57.503] [DEBUG] QUERY OK db=29.9ms idle=2.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "0", "mobile_data_mb", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.504] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404979, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:11:57.507] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:15:11Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:11:57.523] [DEBUG] QUERY OK db=15.1ms idle=31.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:15:11Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47083, ~N[2026-07-13 08:11:57], ~N[2026-07-13 08:11:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:11:57.528] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404980, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:15:11Z", message: nil, status_log_id: 47083, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:11:57], updated_at: ~N[2026-07-13 08:11:57]}} [2026-07-13 08:15:00.321] [INFO ] [SlaMonitorWorker] Running at hour=8 checking settlement_date=2026-07-10 [2026-07-13 08:15:00.328] [DEBUG] QUERY OK source="settlement_mis" db=0.4ms queue=0.9ms idle=59.7ms SELECT TRUE FROM `settlement_mis` AS s0 WHERE (s0.`mis_date` = ?) AND (s0.`approval_status` = 'approved') LIMIT 1 [~D[2026-07-10]] ↳ SettlementCore.Workers.SlaMonitorWorker.check_mis_approval_sla/1, at: lib/settlement_core/workers/sla_monitor_worker.ex:97 [2026-07-13 08:15:00.328] [WARN ] [SlaMonitorWorker] SLA BREACH: MIS not approved for 2026-07-10 [2026-07-13 08:15:15.348] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 08:15:15.350] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=203.4ms 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-07-13 08:15:15.351] [DEBUG] QUERY OK source="filter_usage" db=0.9ms idle=45.4ms 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-07-13 08:15:15.351] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 08:15:18.275] [INFO ] Running offline device check... [2026-07-13 08:15:18.276] [INFO ] Starting offline device check... [2026-07-13 08:15:18.277] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=970.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:15:18.288] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.4ms idle=124.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=11.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.298] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.299] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.300] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.301] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.314] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.326] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms queue=0.4ms idle=12.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.349] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.356] [DEBUG] QUERY OK source="tms_terminals" db=7.0ms idle=15.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:15:18], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:15:18.356] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:15:18.358] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.358] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.360] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.361] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.377] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.379] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.387] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.401] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.408] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.410] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.411] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.411] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.412] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.414] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:15:18.415] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 08:15:18.415] [INFO ] Offline device check completed successfully [2026-07-13 08:20:18.415] [INFO ] Running offline device check... [2026-07-13 08:20:18.416] [INFO ] Starting offline device check... [2026-07-13 08:20:18.417] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=293.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:20:18.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=84.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms queue=0.1ms idle=10.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.437] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.441] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.441] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.442] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.443] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.444] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.446] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.452] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.464] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=11.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.470] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.471] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.472] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.487] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.512] [DEBUG] QUERY OK source="tms_terminals" db=24.5ms idle=15.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:20:18], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:20:18.514] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:20:18.515] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.3ms idle=26.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.517] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.526] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.528] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.548] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.5ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.9ms idle=20.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.558] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.560] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.563] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.564] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.576] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.577] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.581] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.583] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms decode=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:20:18.587] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 08:20:18.587] [INFO ] Offline device check completed successfully [2026-07-13 08:25:18.587] [INFO ] Running offline device check... [2026-07-13 08:25:18.588] [INFO ] Starting offline device check... [2026-07-13 08:25:18.590] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=471.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:25:18.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=230.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms queue=0.6ms idle=11.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.611] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.611] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.615] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.616] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.617] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.625] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.637] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.641] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=12.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.643] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.645] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.646] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.681] [DEBUG] QUERY OK source="tms_terminals" db=16.1ms idle=18.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:25:18], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:25:18.681] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:25:18.682] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=17.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.683] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.685] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.688] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.689] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.704] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.705] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.713] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.714] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.717] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.718] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.719] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.724] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.725] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.726] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=1.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.729] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.731] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.734] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:25:18.736] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 08:25:18.736] [INFO ] Offline device check completed successfully [2026-07-13 08:30:15.352] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 08:30:15.354] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1050.4ms 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-07-13 08:30:15.355] [DEBUG] QUERY OK source="filter_usage" db=0.9ms idle=48.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-07-13 08:30:15.355] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 08:30:18.736] [INFO ] Running offline device check... [2026-07-13 08:30:18.737] [INFO ] Starting offline device check... [2026-07-13 08:30:18.738] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=424.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:30:18.748] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.5ms idle=356.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=11.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=12.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.764] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.766] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.769] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.770] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.774] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.779] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.789] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.794] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms queue=0.6ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.797] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.813] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.828] [DEBUG] QUERY OK source="tms_terminals" db=14.4ms queue=0.1ms idle=15.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:30:18], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:30:18.828] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:30:18.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=15.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.832] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.833] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.834] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.836] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.851] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.869] [DEBUG] QUERY OK source="tms_terminals" db=17.9ms idle=15.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:30:18], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:30:18.869] [INFO ] Terminal 98251226730001 back online [2026-07-13 08:30:18.871] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=19.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.884] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.889] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.894] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.896] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.898] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.906] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:30:18.906] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 08:30:18.906] [INFO ] Offline device check completed successfully [2026-07-13 08:34:52.674] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:34:52.674] [INFO ] Incoming JSON payload: {"oid":"b9290b51-b37f-480a-93f2-165f2eb02ad1","sn":"98251226730001","uploadTime":"2026-07-13T16:38:07Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"ram_free_mb","value":"945","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:38:07Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:34:52.677] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "b9290b51-b37f-480a-93f2-165f2eb02ad1", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:38:07Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:38:07Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:38:07Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:38:07Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:38:07Z", "value" => "945"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:38:07Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:38:07Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:38:07Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:38:07Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:38:07Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:38:07Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:38:07Z", "vendor" => "morefun"} [2026-07-13 08:34:52.678] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:34:52.678] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:34:52.678] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:34:52.680] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms idle=480.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:34:52.681] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.3ms idle=271.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:34:52.681] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:34:52.684] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:34:52.684] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:34:52.709] [DEBUG] QUERY OK source="tms_terminals" db=23.9ms idle=3.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:34:52], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:34:52.709] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:34:52.711] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:34:52.735] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms idle=0.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:34:52], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:34:52.746] [DEBUG] QUERY OK db=10.3ms idle=0.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "b9290b51-b37f-480a-93f2-165f2eb02ad1", "2026-07-13T16:38:07Z", ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:34:52.746] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47084, oid: "b9290b51-b37f-480a-93f2-165f2eb02ad1", upload_time: "2026-07-13T16:38:07Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]} [2026-07-13 08:34:52.746] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:38:07Z", "value" => "morefun"} [2026-07-13 08:34:52.758] [DEBUG] QUERY OK db=11.1ms idle=3.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "morefun", "vendor", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.758] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404981, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.758] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:38:07Z", "value" => "kiosk_launcher"} [2026-07-13 08:34:52.783] [DEBUG] QUERY OK db=24.2ms idle=12.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "kiosk_launcher", "model", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.783] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404982, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.783] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:38:07Z", "value" => "1.0"} [2026-07-13 08:34:52.819] [DEBUG] QUERY OK db=34.2ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "1.0", "app_version", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.819] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404983, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.821] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:38:07Z", "value" => "13"} [2026-07-13 08:34:52.840] [DEBUG] QUERY OK db=18.6ms idle=38.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "13", "android_version", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.840] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404984, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.840] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:38:07Z", "value" => "945"} [2026-07-13 08:34:52.858] [DEBUG] QUERY OK db=16.8ms idle=22.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "945", "ram_free_mb", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.859] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404985, itemkey: "ram_free_mb", value: "945", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.859] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:38:07Z", "value" => "WIFI"} [2026-07-13 08:34:52.889] [DEBUG] QUERY OK db=30.0ms idle=19.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "WIFI", "network_type", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.889] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404986, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.890] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:38:07Z", "value" => "true"} [2026-07-13 08:34:52.914] [DEBUG] QUERY OK db=24.0ms queue=0.1ms idle=31.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "true", "kiosk_active", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.914] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404987, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.914] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:38:07Z", "value" => ""} [2026-07-13 08:34:52.940] [DEBUG] QUERY OK db=25.5ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:38:07Z", "sim_operator", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.941] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404988, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.941] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"} [2026-07-13 08:34:52.955] [DEBUG] QUERY OK db=13.7ms queue=0.2ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "UNKNOWN", "sim_number", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.955] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404989, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.956] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"} [2026-07-13 08:34:52.973] [DEBUG] QUERY OK db=17.0ms idle=15.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "UNKNOWN", "sim_iccid", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.973] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404990, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.973] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"} [2026-07-13 08:34:52.998] [DEBUG] QUERY OK db=22.8ms queue=0.5ms idle=19.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "UNKNOWN", "sim_imsi", 47084, ~N[2026-07-13 08:34:52], ~N[2026-07-13 08:34:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:52.999] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404991, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:52], updated_at: ~N[2026-07-13 08:34:52]}} [2026-07-13 08:34:52.999] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"} [2026-07-13 08:34:53.030] [DEBUG] QUERY OK db=29.4ms idle=27.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "UNKNOWN", "sim_iccid2", 47084, ~N[2026-07-13 08:34:53], ~N[2026-07-13 08:34:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:53.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404992, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:53], updated_at: ~N[2026-07-13 08:34:53]}} [2026-07-13 08:34:53.031] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:38:07Z", "value" => "UNKNOWN"} [2026-07-13 08:34:53.046] [DEBUG] QUERY OK db=13.3ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "UNKNOWN", "sim_imsi2", 47084, ~N[2026-07-13 08:34:53], ~N[2026-07-13 08:34:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:53.046] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404993, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:53], updated_at: ~N[2026-07-13 08:34:53]}} [2026-07-13 08:34:53.046] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:38:07Z", "value" => "1"} [2026-07-13 08:34:53.058] [DEBUG] QUERY OK db=11.5ms idle=16.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "1", "data_usage_mb", 47084, ~N[2026-07-13 08:34:53], ~N[2026-07-13 08:34:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:53.058] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404994, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:53], updated_at: ~N[2026-07-13 08:34:53]}} [2026-07-13 08:34:53.059] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:38:07Z", "value" => "0"} [2026-07-13 08:34:53.092] [DEBUG] QUERY OK db=32.3ms idle=13.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "0", "mobile_data_mb", 47084, ~N[2026-07-13 08:34:53], ~N[2026-07-13 08:34:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:53.092] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404995, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:53], updated_at: ~N[2026-07-13 08:34:53]}} [2026-07-13 08:34:53.092] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:38:07Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:34:53.119] [DEBUG] QUERY OK db=26.0ms idle=34.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:07Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47084, ~N[2026-07-13 08:34:53], ~N[2026-07-13 08:34:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:34:53.121] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404996, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:38:07Z", message: nil, status_log_id: 47084, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:34:53], updated_at: ~N[2026-07-13 08:34:53]}} [2026-07-13 08:35:18.910] [INFO ] Running offline device check... [2026-07-13 08:35:18.910] [INFO ] Starting offline device check... [2026-07-13 08:35:18.913] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=614.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:35:18.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.3ms idle=501.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.5ms queue=0.1ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.936] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=10.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.937] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.938] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.939] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.940] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.943] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.946] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.951] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.963] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=11.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.969] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.972] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=1.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:18.988] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.017] [DEBUG] QUERY OK source="tms_terminals" db=28.6ms idle=15.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:35:18], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:35:19.017] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:35:19.019] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=29.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.024] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.025] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.041] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.6ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=17.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.051] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.052] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.056] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.057] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.058] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.065] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.069] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.070] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.070] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.071] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:35:19.071] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 08:35:19.072] [INFO ] Offline device check completed successfully [2026-07-13 08:35:22.772] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:35:22.773] [INFO ] Incoming JSON payload: {"oid":"4f93b500-58a4-4103-b245-70fafd50d7b3","sn":"98251226730001","uploadTime":"2026-07-13T16:38:37Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"ram_free_mb","value":"947","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:38:37Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:35:22.774] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "4f93b500-58a4-4103-b245-70fafd50d7b3", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:38:37Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:38:37Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:38:37Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:38:37Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:38:37Z", "value" => "947"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:38:37Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:38:37Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:38:37Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:38:37Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:38:37Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:38:37Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:38:37Z", "vendor" => "morefun"} [2026-07-13 08:35:22.774] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:35:22.774] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:35:22.776] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:35:22.777] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms queue=0.4ms idle=361.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:35:22.778] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=0.1ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:35:22.778] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:35:22.780] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=0.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:35:22.782] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:35:22.802] [DEBUG] QUERY OK source="tms_terminals" db=20.1ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:35:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:35:22.803] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:35:22.805] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=17.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:35:22.827] [DEBUG] QUERY OK source="tms_terminals" db=22.4ms queue=0.1ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:35:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:35:22.851] [DEBUG] QUERY OK db=22.9ms idle=23.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "4f93b500-58a4-4103-b245-70fafd50d7b3", "2026-07-13T16:38:37Z", ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:35:22.852] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47085, oid: "4f93b500-58a4-4103-b245-70fafd50d7b3", upload_time: "2026-07-13T16:38:37Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]} [2026-07-13 08:35:22.852] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:38:37Z", "value" => "morefun"} [2026-07-13 08:35:22.868] [DEBUG] QUERY OK db=14.2ms queue=0.1ms idle=26.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "morefun", "vendor", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.868] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404997, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.868] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:38:37Z", "value" => "kiosk_launcher"} [2026-07-13 08:35:22.879] [DEBUG] QUERY OK db=10.5ms idle=17.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "kiosk_launcher", "model", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.882] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404998, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.882] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:38:37Z", "value" => "1.0"} [2026-07-13 08:35:22.911] [DEBUG] QUERY OK db=28.5ms idle=13.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "1.0", "app_version", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.911] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 404999, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.911] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:38:37Z", "value" => "13"} [2026-07-13 08:35:22.936] [DEBUG] QUERY OK db=23.0ms idle=33.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "13", "android_version", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.937] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405000, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.937] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:38:37Z", "value" => "947"} [2026-07-13 08:35:22.954] [DEBUG] QUERY OK db=16.6ms queue=0.1ms idle=26.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "947", "ram_free_mb", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.954] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405001, itemkey: "ram_free_mb", value: "947", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.954] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:38:37Z", "value" => "WIFI"} [2026-07-13 08:35:22.967] [DEBUG] QUERY OK db=12.1ms idle=18.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "WIFI", "network_type", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.967] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405002, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.967] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:38:37Z", "value" => "true"} [2026-07-13 08:35:22.985] [DEBUG] QUERY OK db=17.1ms queue=0.1ms idle=13.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "true", "kiosk_active", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:22.985] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405003, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:22.985] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:38:37Z", "value" => ""} [2026-07-13 08:35:23.013] [DEBUG] QUERY OK db=26.7ms queue=0.3ms idle=19.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:38:37Z", "sim_operator", 47085, ~N[2026-07-13 08:35:22], ~N[2026-07-13 08:35:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.013] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405004, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:22], updated_at: ~N[2026-07-13 08:35:22]}} [2026-07-13 08:35:23.020] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"} [2026-07-13 08:35:23.048] [DEBUG] QUERY OK db=27.4ms idle=35.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "UNKNOWN", "sim_number", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.049] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405005, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.050] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"} [2026-07-13 08:35:23.068] [DEBUG] QUERY OK db=16.5ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "UNKNOWN", "sim_iccid", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.068] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405006, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.069] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"} [2026-07-13 08:35:23.089] [DEBUG] QUERY OK db=19.6ms idle=21.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "UNKNOWN", "sim_imsi", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.089] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405007, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.089] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"} [2026-07-13 08:35:23.112] [DEBUG] QUERY OK db=22.5ms idle=21.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "UNKNOWN", "sim_iccid2", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.112] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405008, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.112] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:38:37Z", "value" => "UNKNOWN"} [2026-07-13 08:35:23.136] [DEBUG] QUERY OK db=23.3ms idle=23.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "UNKNOWN", "sim_imsi2", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.136] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405009, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.136] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:38:37Z", "value" => "1"} [2026-07-13 08:35:23.158] [DEBUG] QUERY OK db=21.0ms queue=0.1ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "1", "data_usage_mb", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.158] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405010, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.158] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:38:37Z", "value" => "0"} [2026-07-13 08:35:23.171] [DEBUG] QUERY OK db=11.6ms queue=0.5ms idle=22.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "0", "mobile_data_mb", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.171] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405011, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:23.172] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:38:37Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:35:23.196] [DEBUG] QUERY OK db=22.9ms queue=0.2ms idle=14.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:38:37Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47085, ~N[2026-07-13 08:35:23], ~N[2026-07-13 08:35:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:23.197] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405012, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:38:37Z", message: nil, status_log_id: 47085, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:23], updated_at: ~N[2026-07-13 08:35:23]}} [2026-07-13 08:35:52.896] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:35:52.896] [INFO ] Incoming JSON payload: {"oid":"e33476f7-20df-43da-a778-66bf35958d92","sn":"98251226730001","uploadTime":"2026-07-13T16:39:07Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"ram_free_mb","value":"939","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:39:07Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:35:52.898] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e33476f7-20df-43da-a778-66bf35958d92", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:39:07Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:39:07Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:39:07Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:39:07Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:39:07Z", "value" => "939"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:39:07Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:39:07Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:39:07Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:39:07Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:39:07Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:39:07Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:39:07Z", "vendor" => "morefun"} [2026-07-13 08:35:52.898] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:35:52.899] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:35:52.899] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:35:52.900] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=515.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:35:52.901] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms queue=0.1ms idle=66.5ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:35:52.901] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:35:52.903] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:35:52.903] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:35:52.915] [DEBUG] QUERY OK source="tms_terminals" db=11.4ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:35:52], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:35:52.915] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:35:52.917] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.2ms idle=12.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:35:52.932] [DEBUG] QUERY OK source="tms_terminals" db=14.6ms queue=0.3ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:35:52], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:35:52.968] [DEBUG] QUERY OK db=35.8ms idle=15.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "e33476f7-20df-43da-a778-66bf35958d92", "2026-07-13T16:39:07Z", ~N[2026-07-13 08:35:52], ~N[2026-07-13 08:35:52]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:35:52.969] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47086, oid: "e33476f7-20df-43da-a778-66bf35958d92", upload_time: "2026-07-13T16:39:07Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:52], updated_at: ~N[2026-07-13 08:35:52]} [2026-07-13 08:35:52.971] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:39:07Z", "value" => "morefun"} [2026-07-13 08:35:52.994] [DEBUG] QUERY OK db=23.1ms queue=0.1ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "morefun", "vendor", 47086, ~N[2026-07-13 08:35:52], ~N[2026-07-13 08:35:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:52.995] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405013, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:52], updated_at: ~N[2026-07-13 08:35:52]}} [2026-07-13 08:35:52.995] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:39:07Z", "value" => "kiosk_launcher"} [2026-07-13 08:35:53.012] [DEBUG] QUERY OK db=16.6ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "kiosk_launcher", "model", 47086, ~N[2026-07-13 08:35:52], ~N[2026-07-13 08:35:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.012] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405014, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:52], updated_at: ~N[2026-07-13 08:35:52]}} [2026-07-13 08:35:53.013] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:39:07Z", "value" => "1.0"} [2026-07-13 08:35:53.034] [DEBUG] QUERY OK db=20.9ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "1.0", "app_version", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.036] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405015, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.036] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:39:07Z", "value" => "13"} [2026-07-13 08:35:53.063] [DEBUG] QUERY OK db=25.7ms queue=0.9ms idle=24.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "13", "android_version", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.064] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405016, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.064] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:39:07Z", "value" => "939"} [2026-07-13 08:35:53.097] [DEBUG] QUERY OK db=32.5ms idle=30.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "939", "ram_free_mb", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.097] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405017, itemkey: "ram_free_mb", value: "939", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.098] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:39:07Z", "value" => "WIFI"} [2026-07-13 08:35:53.113] [DEBUG] QUERY OK db=14.5ms queue=0.2ms idle=34.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "WIFI", "network_type", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405018, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.113] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:39:07Z", "value" => "true"} [2026-07-13 08:35:53.124] [DEBUG] QUERY OK db=10.7ms idle=16.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "true", "kiosk_active", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.125] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405019, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.125] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:39:07Z", "value" => ""} [2026-07-13 08:35:53.137] [DEBUG] QUERY OK db=12.0ms idle=12.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:39:07Z", "sim_operator", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.137] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405020, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.138] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"} [2026-07-13 08:35:53.172] [DEBUG] QUERY OK db=33.6ms idle=13.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "UNKNOWN", "sim_number", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.172] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405021, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.172] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"} [2026-07-13 08:35:53.195] [DEBUG] QUERY OK db=22.8ms idle=35.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "UNKNOWN", "sim_iccid", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.196] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405022, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.196] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"} [2026-07-13 08:35:53.211] [DEBUG] QUERY OK db=14.8ms idle=24.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "UNKNOWN", "sim_imsi", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.211] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405023, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.211] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"} [2026-07-13 08:35:53.226] [DEBUG] QUERY OK db=14.0ms queue=0.4ms idle=16.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "UNKNOWN", "sim_iccid2", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.226] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405024, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.226] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:39:07Z", "value" => "UNKNOWN"} [2026-07-13 08:35:53.241] [DEBUG] QUERY OK db=14.1ms idle=15.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "UNKNOWN", "sim_imsi2", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.242] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405025, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.242] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:39:07Z", "value" => "1"} [2026-07-13 08:35:53.274] [DEBUG] QUERY OK db=30.9ms queue=0.3ms idle=16.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "1", "data_usage_mb", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.276] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405026, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.276] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:39:07Z", "value" => "0"} [2026-07-13 08:35:53.301] [DEBUG] QUERY OK db=23.7ms idle=35.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "0", "mobile_data_mb", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.301] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405027, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:53.304] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:39:07Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:35:53.318] [DEBUG] QUERY OK db=12.5ms idle=30.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:07Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47086, ~N[2026-07-13 08:35:53], ~N[2026-07-13 08:35:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:53.319] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405028, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:39:07Z", message: nil, status_log_id: 47086, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:53], updated_at: ~N[2026-07-13 08:35:53]}} [2026-07-13 08:35:56.616] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:35:56.617] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:39:11Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:39:11Z","value":"58"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:39:11Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:39:11Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:39:11Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:39:11Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:39:11Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:39:11Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:39:11Z","vendor":"MoreFun"} [2026-07-13 08:35:56.617] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:39:11Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:39:11Z", "value" => "58"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:39:11Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:39:11Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:39:11Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:39:11Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:39:11Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:39:11Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:39:11Z", "vendor" => "MoreFun"} [2026-07-13 08:35:56.617] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:35:56.620] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:35:56.621] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:35:56.621] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=1204.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:35:56.623] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=226.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:35:56.624] [DEBUG] QUERY OK source="parameter_template_values" db=0.5ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:35:56.627] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=1.4ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:35:56.629] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms idle=4.1ms 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:165 [2026-07-13 08:35:56.668] [DEBUG] QUERY OK source="pos_merchant" db=38.4ms queue=0.4ms idle=1.9ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:35:56.671] [DEBUG] QUERY OK db=2.1ms queue=0.5ms idle=1268.1ms 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 ["490603880000000"] [2026-07-13 08:35:56.671] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:35:56.672] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms idle=42.2ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:35:56.673] [DEBUG] QUERY OK source="address" db=1.1ms idle=4.2ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:35:56.673] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:35:56.675] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:35:56.700] [DEBUG] QUERY OK db=23.0ms idle=4.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "e5422d1c70fcd5e946e8a8f5cae8536f6296e500d821b4233507c884618748a0", 3875, 915, ~U[2026-07-13 08:35:56Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:35:56], ~N[2026-07-13 08:35:56]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:35:56.700] [INFO ] AutoPushService: Created push log 33521 for MF919 params.zip [2026-07-13 08:35:56.700] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 3875, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:35:56.700] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:35:56.700] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:35:56.703] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=28.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:35:56.709] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:35:56.736] [DEBUG] QUERY OK db=24.7ms idle=11.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "1ce37b72a9cdf45181e5c4d346f800b9243bfa1530100a44c0bfd0a75ccb9d8a", 3907, 17947, ~U[2026-07-13 08:35:56Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:35:56], ~N[2026-07-13 08:35:56]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:35:56.736] [INFO ] AutoPushService: Created push log 33522 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:35:56.736] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 3907, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:35:56.737] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:35:56.737] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:35:56.742] [DEBUG] QUERY OK source="config_file_versions" db=5.0ms idle=34.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:35:56.742] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:35:56.744] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=7.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:35:56.744] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:35:56.746] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:35:56.746] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:35:56.746] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:35:56.747] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:35:56.747] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:35:56.747] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:35:56.748] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=3.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:35:56.802] [DEBUG] QUERY OK source="tms_terminals" db=12.6ms queue=40.8ms idle=1.3ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:35:56], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:35:56.802] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:35:56.802] [INFO ] Event published: terminal_updated [2026-07-13 08:35:56.803] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:35:56.803] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:35:56.803] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:35:56.804] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.6ms idle=55.0ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:35:56], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:35:56.806] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=0.9ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:35:56.807] [DEBUG] QUERY OK source="terminal_group_rules" db=0.7ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:35:56.807] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:35:56.871] [DEBUG] QUERY OK source="tms_terminals" db=23.4ms queue=42.7ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:35:56], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:35:56.871] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=63.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:35:56.872] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:35:56.872] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:35:56.873] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:35:56.938] [DEBUG] QUERY OK source="tms_terminals" db=23.4ms queue=40.4ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:35:56], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:35:56.955] [DEBUG] QUERY OK db=17.0ms idle=65.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:39:11Z", ~N[2026-07-13 08:35:56], ~N[2026-07-13 08:35:56]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:35:56.955] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47087, oid: "organization_id", upload_time: "2026-07-13T16:39:11Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:56], updated_at: ~N[2026-07-13 08:35:56]} [2026-07-13 08:35:56.956] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:39:11Z", "value" => "online"} [2026-07-13 08:35:56.971] [DEBUG] QUERY OK db=15.2ms queue=0.1ms idle=18.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:39:11Z", "online", "status", 47087, ~N[2026-07-13 08:35:56], ~N[2026-07-13 08:35:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:56.973] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405029, itemkey: "status", value: "online", timestamp: "2026-07-13T16:39:11Z", message: "Terminal status update", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:56], updated_at: ~N[2026-07-13 08:35:56]}} [2026-07-13 08:35:56.973] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:35:56.973] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:39:11Z", "value" => "58"} [2026-07-13 08:35:56.997] [DEBUG] QUERY OK db=23.3ms queue=0.2ms idle=18.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:39:11Z", "58", "battery", 47087, ~N[2026-07-13 08:35:56], ~N[2026-07-13 08:35:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:56.997] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405030, itemkey: "battery", value: "58", timestamp: "2026-07-13T16:39:11Z", message: "Battery level", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:56], updated_at: ~N[2026-07-13 08:35:56]}} [2026-07-13 08:35:56.997] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:39:11Z", "value" => "online"} [2026-07-13 08:35:57.034] [DEBUG] QUERY OK db=35.8ms idle=26.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:39:11Z", "online", "network", 47087, ~N[2026-07-13 08:35:56], ~N[2026-07-13 08:35:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:57.034] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405031, itemkey: "network", value: "online", timestamp: "2026-07-13T16:39:11Z", message: "Network connectivity", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:56], updated_at: ~N[2026-07-13 08:35:56]}} [2026-07-13 08:35:57.034] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:35:57.034] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:39:11Z", "value" => "0"} [2026-07-13 08:35:57.051] [DEBUG] QUERY OK db=16.9ms idle=37.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:39:11Z", "0", "cpu", 47087, ~N[2026-07-13 08:35:57], ~N[2026-07-13 08:35:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:57.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405032, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:39:11Z", message: "CPU usage percentage", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:57], updated_at: ~N[2026-07-13 08:35:57]}} [2026-07-13 08:35:57.052] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:39:11Z", "value" => "1.0.0"} [2026-07-13 08:35:57.067] [DEBUG] QUERY OK db=14.7ms idle=18.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:39:11Z", "1.0.0", "parameter_config", 47087, ~N[2026-07-13 08:35:57], ~N[2026-07-13 08:35:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:57.068] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405033, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:39:11Z", message: "Current parameters version", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:57], updated_at: ~N[2026-07-13 08:35:57]}} [2026-07-13 08:35:57.068] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:39:11Z", "value" => "1.0.1"} [2026-07-13 08:35:57.082] [DEBUG] QUERY OK db=13.5ms idle=17.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:39:11Z", "1.0.1", "emv_config", 47087, ~N[2026-07-13 08:35:57], ~N[2026-07-13 08:35:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:57.082] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405034, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:39:11Z", message: "Current EMV config version", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:57], updated_at: ~N[2026-07-13 08:35:57]}} [2026-07-13 08:35:57.082] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:39:11Z", "value" => ""} [2026-07-13 08:35:57.150] [DEBUG] QUERY OK db=24.3ms queue=42.2ms idle=15.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:39:11Z", "keys_config", 47087, ~N[2026-07-13 08:35:57], ~N[2026-07-13 08:35:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:57.150] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405035, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:39:11Z", message: "Current keys config version", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:57], updated_at: ~N[2026-07-13 08:35:57]}} [2026-07-13 08:35:57.150] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:39:11Z", "value" => ""} [2026-07-13 08:35:57.205] [DEBUG] QUERY OK db=13.5ms queue=41.2ms idle=68.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:39:11Z", "application", 47087, ~N[2026-07-13 08:35:57], ~N[2026-07-13 08:35:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:35:57.205] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405036, itemkey: "application", value: nil, timestamp: "2026-07-13T16:39:11Z", message: "Current application version", status_log_id: 47087, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:35:57], updated_at: ~N[2026-07-13 08:35:57]}} [2026-07-13 08:35:57.206] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:39:11Z"} [2026-07-13 08:35:57.206] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:39:11Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 41, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:36:17.049] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:39:11Z"} [2026-07-13 08:36:17.050] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:39:11Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<58, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 42, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:36:23.238] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:36:23.239] [INFO ] Incoming JSON payload: {"oid":"20b75847-7da3-455b-87f3-715263958f96","sn":"98251226730001","uploadTime":"2026-07-13T16:39:37Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"ram_free_mb","value":"949","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:39:37Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:36:23.241] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "20b75847-7da3-455b-87f3-715263958f96", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:39:37Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:39:37Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:39:37Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:39:37Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:39:37Z", "value" => "949"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:39:37Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:39:37Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:39:37Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:39:37Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:39:37Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:39:37Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:39:37Z", "vendor" => "morefun"} [2026-07-13 08:36:23.241] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:36:23.241] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:36:23.241] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:36:23.243] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.3ms idle=364.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:36:23.244] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.9ms idle=88.5ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:36:23.244] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:36:23.246] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:36:23.292] [DEBUG] QUERY OK source="tms_terminals" db=5.0ms queue=40.6ms idle=1.7ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:36:23], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:36:23.292] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:36:23.292] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:36:23.292] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:36:23.292] [INFO ] Event published: terminal_updated [2026-07-13 08:36:23.292] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:36:23.294] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.6ms idle=47.4ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:36:23], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:36:23.295] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=2.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:36:23.296] [DEBUG] QUERY OK source="terminal_group_rules" db=0.7ms idle=0.4ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:36:23.296] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:36:23.342] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms queue=43.0ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:36:23], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:36:23.343] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:36:23.344] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=46.7ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:36:23.394] [DEBUG] QUERY OK source="tms_terminals" db=7.2ms queue=41.8ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:36:23], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:36:23.404] [DEBUG] QUERY OK db=9.9ms queue=0.1ms idle=49.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "20b75847-7da3-455b-87f3-715263958f96", "2026-07-13T16:39:37Z", ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:36:23.405] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47088, oid: "20b75847-7da3-455b-87f3-715263958f96", upload_time: "2026-07-13T16:39:37Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]} [2026-07-13 08:36:23.406] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:39:37Z", "value" => "morefun"} [2026-07-13 08:36:23.453] [DEBUG] QUERY OK db=5.3ms queue=41.0ms idle=12.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "morefun", "vendor", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.453] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405037, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.453] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:39:37Z", "value" => "kiosk_launcher"} [2026-07-13 08:36:23.500] [DEBUG] QUERY OK db=5.1ms queue=40.9ms idle=49.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "kiosk_launcher", "model", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.500] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405038, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.500] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:39:37Z", "value" => "1.0"} [2026-07-13 08:36:23.507] [DEBUG] QUERY OK db=5.3ms queue=0.1ms idle=14.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "1.0", "app_version", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.507] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405039, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.507] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:39:37Z", "value" => "13"} [2026-07-13 08:36:23.516] [DEBUG] QUERY OK db=8.9ms queue=0.2ms idle=7.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "13", "android_version", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.517] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405040, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.517] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:39:37Z", "value" => "949"} [2026-07-13 08:36:23.524] [DEBUG] QUERY OK db=6.4ms idle=11.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "949", "ram_free_mb", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.525] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405041, itemkey: "ram_free_mb", value: "949", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.525] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:39:37Z", "value" => "WIFI"} [2026-07-13 08:36:23.531] [DEBUG] QUERY OK db=5.7ms idle=8.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "WIFI", "network_type", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.531] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405042, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.531] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:39:37Z", "value" => "true"} [2026-07-13 08:36:23.540] [DEBUG] QUERY OK db=8.1ms idle=7.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "true", "kiosk_active", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.540] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405043, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.540] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:39:37Z", "value" => ""} [2026-07-13 08:36:23.547] [DEBUG] QUERY OK db=6.4ms idle=9.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:39:37Z", "sim_operator", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.547] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405044, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.547] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"} [2026-07-13 08:36:23.552] [DEBUG] QUERY OK db=4.7ms idle=7.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "UNKNOWN", "sim_number", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.553] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405045, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.553] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"} [2026-07-13 08:36:23.558] [DEBUG] QUERY OK db=5.1ms idle=6.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "UNKNOWN", "sim_iccid", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.558] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405046, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.558] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"} [2026-07-13 08:36:23.565] [DEBUG] QUERY OK db=6.2ms idle=6.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "UNKNOWN", "sim_imsi", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.565] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405047, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.566] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"} [2026-07-13 08:36:23.571] [DEBUG] QUERY OK db=4.9ms idle=7.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "UNKNOWN", "sim_iccid2", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.571] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405048, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.571] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:39:37Z", "value" => "UNKNOWN"} [2026-07-13 08:36:23.576] [DEBUG] QUERY OK db=5.0ms idle=6.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "UNKNOWN", "sim_imsi2", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.577] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405049, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.577] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:39:37Z", "value" => "1"} [2026-07-13 08:36:23.583] [DEBUG] QUERY OK db=6.0ms idle=6.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "1", "data_usage_mb", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.583] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405050, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.584] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:39:37Z", "value" => "0"} [2026-07-13 08:36:23.589] [DEBUG] QUERY OK db=5.5ms idle=7.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "0", "mobile_data_mb", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.590] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405051, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:23.591] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:39:37Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:36:23.598] [DEBUG] QUERY OK db=6.2ms idle=8.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:39:37Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47088, ~N[2026-07-13 08:36:23], ~N[2026-07-13 08:36:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:23.601] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405052, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:39:37Z", message: nil, status_log_id: 47088, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:23], updated_at: ~N[2026-07-13 08:36:23]}} [2026-07-13 08:36:53.324] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:36:53.324] [INFO ] Incoming JSON payload: {"oid":"3816b7fd-92b7-42a7-8c43-afffbbd2f151","sn":"98251226730001","uploadTime":"2026-07-13T16:40:07Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"ram_free_mb","value":"944","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"data_usage_mb","value":"1","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:40:07Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:36:53.326] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "3816b7fd-92b7-42a7-8c43-afffbbd2f151", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:40:07Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:40:07Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:40:07Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:40:07Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:40:07Z", "value" => "944"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:40:07Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:40:07Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:40:07Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:40:07Z", "value" => "1"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:40:07Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:40:07Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:40:07Z", "vendor" => "morefun"} [2026-07-13 08:36:53.326] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:36:53.326] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:36:53.326] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:36:53.327] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=750.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:36:53.328] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=407.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:36:53.328] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:36:53.330] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.1ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:36:53.333] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:36:53.384] [DEBUG] QUERY OK source="tms_terminals" db=8.7ms queue=41.6ms idle=5.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:36:53], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:36:53.384] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:36:53.386] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=54.9ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:36:53.392] [DEBUG] QUERY OK source="tms_terminals" db=5.2ms queue=0.1ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:36:53], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:36:53.399] [DEBUG] QUERY OK db=6.7ms idle=6.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "3816b7fd-92b7-42a7-8c43-afffbbd2f151", "2026-07-13T16:40:07Z", ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:36:53.399] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47089, oid: "3816b7fd-92b7-42a7-8c43-afffbbd2f151", upload_time: "2026-07-13T16:40:07Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]} [2026-07-13 08:36:53.400] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:40:07Z", "value" => "morefun"} [2026-07-13 08:36:53.410] [DEBUG] QUERY OK db=9.2ms idle=9.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "morefun", "vendor", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.410] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405053, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.411] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:40:07Z", "value" => "kiosk_launcher"} [2026-07-13 08:36:53.418] [DEBUG] QUERY OK db=6.6ms idle=11.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "kiosk_launcher", "model", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.418] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405054, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.418] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:40:07Z", "value" => "1.0"} [2026-07-13 08:36:53.425] [DEBUG] QUERY OK db=6.0ms idle=8.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "1.0", "app_version", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.425] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405055, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.425] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:40:07Z", "value" => "13"} [2026-07-13 08:36:53.430] [DEBUG] QUERY OK db=4.9ms idle=7.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "13", "android_version", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.431] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405056, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.431] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:40:07Z", "value" => "944"} [2026-07-13 08:36:53.439] [DEBUG] QUERY OK db=7.8ms idle=6.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "944", "ram_free_mb", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.440] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405057, itemkey: "ram_free_mb", value: "944", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.440] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:40:07Z", "value" => "WIFI"} [2026-07-13 08:36:53.446] [DEBUG] QUERY OK db=5.4ms idle=10.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "WIFI", "network_type", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.446] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405058, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.446] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:40:07Z", "value" => "true"} [2026-07-13 08:36:53.453] [DEBUG] QUERY OK db=5.2ms idle=8.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "true", "kiosk_active", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.453] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405059, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.453] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:40:07Z", "value" => ""} [2026-07-13 08:36:53.464] [DEBUG] QUERY OK db=9.2ms queue=1.1ms idle=7.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:40:07Z", "sim_operator", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.464] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405060, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.465] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"} [2026-07-13 08:36:53.471] [DEBUG] QUERY OK db=4.4ms idle=13.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "UNKNOWN", "sim_number", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.471] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405061, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.471] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"} [2026-07-13 08:36:53.476] [DEBUG] QUERY OK db=4.4ms idle=7.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "UNKNOWN", "sim_iccid", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.476] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405062, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.476] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"} [2026-07-13 08:36:53.482] [DEBUG] QUERY OK db=6.0ms idle=5.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "UNKNOWN", "sim_imsi", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.483] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405063, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.483] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"} [2026-07-13 08:36:53.489] [DEBUG] QUERY OK db=5.1ms idle=7.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "UNKNOWN", "sim_iccid2", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.489] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405064, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.489] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:40:07Z", "value" => "UNKNOWN"} [2026-07-13 08:36:53.495] [DEBUG] QUERY OK db=5.4ms idle=6.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "UNKNOWN", "sim_imsi2", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.495] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405065, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.495] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:40:07Z", "value" => "1"} [2026-07-13 08:36:53.501] [DEBUG] QUERY OK db=5.6ms idle=6.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "1", "data_usage_mb", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.501] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405066, itemkey: "data_usage_mb", value: "1", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.502] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:40:07Z", "value" => "0"} [2026-07-13 08:36:53.508] [DEBUG] QUERY OK db=5.6ms idle=7.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "0", "mobile_data_mb", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.508] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405067, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:36:53.508] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:40:07Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:36:53.515] [DEBUG] QUERY OK db=5.8ms idle=7.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:07Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47089, ~N[2026-07-13 08:36:53], ~N[2026-07-13 08:36:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:36:53.516] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405068, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:40:07Z", message: nil, status_log_id: 47089, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:36:53], updated_at: ~N[2026-07-13 08:36:53]}} [2026-07-13 08:37:02.503] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 08:37:02.504] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T23:46:52Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T23:46:52Z","value":"83"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T23:46:52Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T23:46:52Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T23:46:52Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T23:46:52Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T23:46:52Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T23:46:52Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T23:46:52Z","vendor":"MoreFun"} [2026-07-13 08:37:02.504] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T23:46:52Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T23:46:52Z", "value" => "83"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T23:46:52Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T23:46:52Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T23:46:52Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T23:46:52Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T23:46:52Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T23:46:52Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T23:46:52Z", "vendor" => "MoreFun"} [2026-07-13 08:37:02.504] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:37:02.504] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 08:37:02.509] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 08:37:02.511] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=1089.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:37:02.514] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=910.3ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:37:02.523] [DEBUG] QUERY OK source="parameter_template_values" db=5.2ms queue=3.1ms idle=3.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:37:02.529] [DEBUG] QUERY OK source="parameter_definitions" db=3.3ms queue=2.2ms idle=10.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:37:02.531] [DEBUG] QUERY OK source="pos_terminal" db=1.4ms idle=6.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 08:37:02.571] [DEBUG] QUERY OK source="pos_merchant" db=37.6ms queue=1.3ms idle=2.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:37:02.574] [DEBUG] QUERY OK db=0.7ms queue=2.5ms idle=165.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 ["501983400000000"] [2026-07-13 08:37:02.574] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:37:02.575] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms idle=43.1ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:37:02.578] [DEBUG] QUERY OK source="address" db=2.6ms idle=4.9ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:37:02.578] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 08:37:02.579] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 08:37:02.595] [DEBUG] QUERY OK db=15.0ms idle=4.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "9c8d7c5b4a436ddfad23c931dfe7c8d02fd03b9e0f363069051210c4e6f8a9e8", 13282, 916, ~U[2026-07-13 08:37:02Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:37:02.596] [INFO ] AutoPushService: Created push log 33523 for MF919 params.zip [2026-07-13 08:37:02.596] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 13282, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:37:02.596] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 08:37:02.596] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 08:37:02.600] [DEBUG] QUERY OK source="config_file_versions" db=3.0ms queue=0.2ms idle=18.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:37:02.611] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:37:02.622] [DEBUG] QUERY OK db=9.7ms idle=12.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "80d7cca73db71b53d0d1c7193dc5fea01e94fb01c0fc78998e1e3e4f29bef9c3", 13378, 17947, ~U[2026-07-13 08:37:02Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:37:02.625] [INFO ] AutoPushService: Created push log 33524 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:37:02.625] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 13378, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:37:02.625] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 08:37:02.626] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 08:37:02.629] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=1.0ms idle=16.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:37:02.630] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 08:37:02.631] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=7.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:37:02.632] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:37:02.637] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:37:02.639] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:37:02.639] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:37:02.644] [DEBUG] QUERY OK source="config_file_versions" db=2.3ms idle=9.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:37:02.645] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:37:02.645] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 08:37:02.646] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=14.7ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:37:02.647] [INFO ] Terminal updated: 98250623730001 [2026-07-13 08:37:02.659] [DEBUG] QUERY OK source="tms_terminals" db=11.3ms idle=5.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:37:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:37:02.662] [DEBUG] QUERY OK source="parameter_templates" db=2.8ms queue=0.1ms idle=13.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:37:02.664] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:37:02.665] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:37:02.666] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 08:37:02.733] [DEBUG] QUERY OK source="parameter_push_logs" db=66.0ms idle=2.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 [19, "application", ~N[2026-07-13 08:07:02]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 08:37:02.733] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 08:37:02.734] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 08:37:02.735] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=68.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 08:37:02.736] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms queue=0.1ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:37:02.737] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:37:02.739] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:37:02.745] [DEBUG] QUERY OK source="tms_terminals" db=5.3ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:37:02.753] [DEBUG] QUERY OK db=7.7ms queue=0.1ms idle=5.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T23:46:52Z", ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:37:02.753] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47090, oid: "organization_id", upload_time: "2026-07-12T23:46:52Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]} [2026-07-13 08:37:02.754] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T23:46:52Z", "value" => "online"} [2026-07-13 08:37:02.764] [DEBUG] QUERY OK db=10.3ms idle=8.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T23:46:52Z", "online", "status", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.765] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405069, itemkey: "status", value: "online", timestamp: "2026-07-12T23:46:52Z", message: "Terminal status update", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.765] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 08:37:02.767] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.8ms idle=11.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:02], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 08:37:02.767] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T23:46:52Z", "value" => "83"} [2026-07-13 08:37:02.773] [DEBUG] QUERY OK db=5.8ms idle=3.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T23:46:52Z", "83", "battery", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.774] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405070, itemkey: "battery", value: "83", timestamp: "2026-07-12T23:46:52Z", message: "Battery level", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.774] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T23:46:52Z", "value" => "online"} [2026-07-13 08:37:02.788] [DEBUG] QUERY OK db=13.0ms idle=8.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T23:46:52Z", "online", "network", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.789] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405071, itemkey: "network", value: "online", timestamp: "2026-07-12T23:46:52Z", message: "Network connectivity", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.789] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 08:37:02.790] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=15.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:02], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 08:37:02.790] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T23:46:52Z", "value" => "0"} [2026-07-13 08:37:02.796] [DEBUG] QUERY OK db=5.2ms idle=2.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T23:46:52Z", "0", "cpu", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.796] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405072, itemkey: "cpu", value: "0", timestamp: "2026-07-12T23:46:52Z", message: "CPU usage percentage", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.796] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T23:46:52Z", "value" => "1.0.0"} [2026-07-13 08:37:02.806] [DEBUG] QUERY OK db=9.1ms idle=6.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T23:46:52Z", "1.0.0", "parameter_config", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.806] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405073, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T23:46:52Z", message: "Current parameters version", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.806] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T23:46:52Z", "value" => "1.0.1"} [2026-07-13 08:37:02.813] [DEBUG] QUERY OK db=4.7ms idle=12.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T23:46:52Z", "1.0.1", "emv_config", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.813] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405074, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T23:46:52Z", message: "Current EMV config version", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.813] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T23:46:52Z", "value" => ""} [2026-07-13 08:37:02.869] [DEBUG] QUERY OK db=13.0ms queue=42.3ms idle=7.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T23:46:52Z", "keys_config", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.869] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405075, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T23:46:52Z", message: "Current keys config version", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.870] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T23:46:52Z", "value" => "1.0.0"} [2026-07-13 08:37:02.878] [DEBUG] QUERY OK db=8.4ms idle=56.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T23:46:52Z", "1.0.0", "application", 47090, ~N[2026-07-13 08:37:02], ~N[2026-07-13 08:37:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:02.879] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405076, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T23:46:52Z", message: "Current application version", status_log_id: 47090, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:02], updated_at: ~N[2026-07-13 08:37:02]}} [2026-07-13 08:37:02.884] [DEBUG] QUERY OK source="tms_terminals" db=5.2ms idle=9.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:02], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 08:37:02.885] [WARN ] Unexpected async result [2026-07-13 08:37:02.885] [WARN ] Unexpected async result [2026-07-13 08:37:21.567] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 08:37:21.567] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-12T23:47:11Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-12T23:47:11Z","value":"83"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-12T23:47:11Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-12T23:47:11Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-12T23:47:11Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-12T23:47:11Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-12T23:47:11Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-12T23:47:11Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-12T23:47:11Z","vendor":"MoreFun"} [2026-07-13 08:37:21.568] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T23:47:11Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T23:47:11Z", "value" => "83"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T23:47:11Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T23:47:11Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T23:47:11Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T23:47:11Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T23:47:11Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T23:47:11Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-12T23:47:11Z", "vendor" => "MoreFun"} [2026-07-13 08:37:21.568] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:37:21.568] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 08:37:21.568] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 08:37:21.570] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms queue=0.1ms idle=1146.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:37:21.571] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.2ms idle=868.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:37:21.573] [DEBUG] QUERY OK source="parameter_template_values" db=0.5ms queue=0.2ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:37:21.575] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.8ms idle=1.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:37:21.575] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=2.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 08:37:21.615] [DEBUG] QUERY OK source="pos_merchant" db=39.8ms idle=1.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:37:21.617] [DEBUG] QUERY OK db=0.7ms queue=0.6ms idle=1210.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 ["501983400000000"] [2026-07-13 08:37:21.617] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:37:21.618] [DEBUG] QUERY OK source="pos_terminal_data" db=0.5ms idle=42.1ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:37:21.619] [DEBUG] QUERY OK source="address" db=0.4ms idle=2.8ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:37:21.619] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 08:37:21.620] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 08:37:21.628] [DEBUG] QUERY OK db=7.0ms idle=2.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c4db3443844200dd0b24830bd16c7b60db86be2f6e6af433da57895ecf191378", 13506, 916, ~U[2026-07-13 08:37:21Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:37:21.628] [INFO ] AutoPushService: Created push log 33525 for MF919 params.zip [2026-07-13 08:37:21.628] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 13506, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:37:21.628] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 08:37:21.630] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 08:37:21.631] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=11.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:37:21.635] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:37:21.643] [DEBUG] QUERY OK db=7.0ms idle=8.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "28c08295da7ff0e5400014bf6444179e5c07b396bb5a2d77684e8a1daa1fd4a1", 4100, 17947, ~U[2026-07-13 08:37:21Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:37:21.643] [INFO ] AutoPushService: Created push log 33526 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:37:21.643] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 4100, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:37:21.643] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 08:37:21.644] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 08:37:21.647] [DEBUG] QUERY OK source="config_file_versions" db=2.7ms idle=12.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:37:21.647] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 08:37:21.648] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=3.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:37:21.648] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:37:21.651] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:37:21.651] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:37:21.651] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:37:21.653] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=4.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:37:21.654] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:37:21.654] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 08:37:21.655] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=6.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:37:21.655] [INFO ] Terminal updated: 98250623730001 [2026-07-13 08:37:21.662] [DEBUG] QUERY OK source="tms_terminals" db=7.3ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:37:21], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:37:21.663] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=8.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:37:21.664] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:37:21.665] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms queue=0.1ms idle=1.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:37:21.665] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 08:37:21.709] [DEBUG] QUERY OK source="parameter_push_logs" db=43.7ms idle=1.4ms 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 [19, "application", ~N[2026-07-13 08:07:21]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 08:37:21.710] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 08:37:21.710] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 08:37:21.715] [DEBUG] QUERY OK source="tms_terminals" db=5.4ms idle=0.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 08:37:21.717] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=0.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:37:21.717] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:37:21.718] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:37:21.725] [DEBUG] QUERY OK source="tms_terminals" db=6.0ms queue=0.3ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:21], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:37:21.731] [DEBUG] QUERY OK db=4.9ms queue=0.6ms idle=6.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-12T23:47:11Z", ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:37:21.731] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47091, oid: "organization_id", upload_time: "2026-07-12T23:47:11Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]} [2026-07-13 08:37:21.731] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-12T23:47:11Z", "value" => "online"} [2026-07-13 08:37:21.738] [DEBUG] QUERY OK db=6.3ms idle=6.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-12T23:47:11Z", "online", "status", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.738] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405077, itemkey: "status", value: "online", timestamp: "2026-07-12T23:47:11Z", message: "Terminal status update", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.739] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 08:37:21.739] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-12T23:47:11Z", "value" => "83"} [2026-07-13 08:37:21.745] [DEBUG] QUERY OK db=5.9ms queue=0.1ms idle=8.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-12T23:47:11Z", "83", "battery", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.746] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405078, itemkey: "battery", value: "83", timestamp: "2026-07-12T23:47:11Z", message: "Battery level", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.746] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-12T23:47:11Z", "value" => "online"} [2026-07-13 08:37:21.752] [DEBUG] QUERY OK db=5.8ms idle=7.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-12T23:47:11Z", "online", "network", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.752] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405079, itemkey: "network", value: "online", timestamp: "2026-07-12T23:47:11Z", message: "Network connectivity", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.752] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 08:37:21.753] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-12T23:47:11Z", "value" => "0"} [2026-07-13 08:37:21.760] [DEBUG] QUERY OK db=6.7ms queue=0.2ms idle=7.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-12T23:47:11Z", "0", "cpu", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.760] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405080, itemkey: "cpu", value: "0", timestamp: "2026-07-12T23:47:11Z", message: "CPU usage percentage", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.760] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-12T23:47:11Z", "value" => "1.0.0"} [2026-07-13 08:37:21.766] [DEBUG] QUERY OK db=5.1ms idle=8.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-12T23:47:11Z", "1.0.0", "parameter_config", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.766] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405081, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-12T23:47:11Z", message: "Current parameters version", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.766] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-12T23:47:11Z", "value" => "1.0.1"} [2026-07-13 08:37:21.772] [DEBUG] QUERY OK db=5.9ms queue=0.1ms idle=6.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-12T23:47:11Z", "1.0.1", "emv_config", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.773] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405082, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-12T23:47:11Z", message: "Current EMV config version", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.773] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-12T23:47:11Z", "value" => ""} [2026-07-13 08:37:21.778] [DEBUG] QUERY OK db=5.2ms idle=7.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-12T23:47:11Z", "keys_config", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405083, itemkey: "keys_config", value: nil, timestamp: "2026-07-12T23:47:11Z", message: "Current keys config version", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.778] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-12T23:47:11Z", "value" => "1.0.0"} [2026-07-13 08:37:21.788] [DEBUG] QUERY OK db=9.5ms idle=6.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-12T23:47:11Z", "1.0.0", "application", 47091, ~N[2026-07-13 08:37:21], ~N[2026-07-13 08:37:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:21.789] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405084, itemkey: "application", value: "1.0.0", timestamp: "2026-07-12T23:47:11Z", message: "Current application version", status_log_id: 47091, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:21], updated_at: ~N[2026-07-13 08:37:21]}} [2026-07-13 08:37:21.789] [WARN ] Unexpected async result [2026-07-13 08:37:21.789] [WARN ] Unexpected async result [2026-07-13 08:37:23.682] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:37:23.682] [INFO ] Incoming JSON payload: {"oid":"d2ce9bab-7e8d-498a-8ed0-7f6feab4a12a","sn":"98251226730001","uploadTime":"2026-07-13T16:40:38Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"ram_free_mb","value":"949","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:40:38Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:37:23.683] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "d2ce9bab-7e8d-498a-8ed0-7f6feab4a12a", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:40:38Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:40:38Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:40:38Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:40:38Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:40:38Z", "value" => "949"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:40:38Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:40:38Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:40:38Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:40:38Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:40:38Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:40:38Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:40:38Z", "vendor" => "morefun"} [2026-07-13 08:37:23.684] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:37:23.684] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:37:23.684] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:37:23.686] [DEBUG] QUERY OK source="parameter_templates" db=1.9ms idle=965.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:37:23.687] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=722.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:37:23.687] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:37:23.689] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:37:23.689] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:37:23.697] [DEBUG] QUERY OK source="tms_terminals" db=8.0ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:37:23], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:37:23.697] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:37:23.700] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=11.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:37:23.706] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:23], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:37:23.712] [DEBUG] QUERY OK db=5.8ms idle=5.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "d2ce9bab-7e8d-498a-8ed0-7f6feab4a12a", "2026-07-13T16:40:38Z", ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:37:23.712] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47092, oid: "d2ce9bab-7e8d-498a-8ed0-7f6feab4a12a", upload_time: "2026-07-13T16:40:38Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]} [2026-07-13 08:37:23.713] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:40:38Z", "value" => "morefun"} [2026-07-13 08:37:23.719] [DEBUG] QUERY OK db=6.3ms idle=6.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "morefun", "vendor", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.719] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405085, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.720] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:40:38Z", "value" => "kiosk_launcher"} [2026-07-13 08:37:23.727] [DEBUG] QUERY OK db=4.9ms queue=0.1ms idle=2.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "kiosk_launcher", "model", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.727] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405086, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.727] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:40:38Z", "value" => "1.0"} [2026-07-13 08:37:23.773] [DEBUG] QUERY OK db=4.7ms queue=41.1ms idle=4.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "1.0", "app_version", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.774] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405087, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.774] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:40:38Z", "value" => "13"} [2026-07-13 08:37:23.779] [DEBUG] QUERY OK db=4.8ms idle=47.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "13", "android_version", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.780] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405088, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.780] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:40:38Z", "value" => "949"} [2026-07-13 08:37:23.785] [DEBUG] QUERY OK db=4.7ms idle=6.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "949", "ram_free_mb", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.785] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405089, itemkey: "ram_free_mb", value: "949", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.785] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:40:38Z", "value" => "WIFI"} [2026-07-13 08:37:23.790] [DEBUG] QUERY OK db=4.8ms idle=5.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "WIFI", "network_type", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.790] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405090, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.791] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:40:38Z", "value" => "true"} [2026-07-13 08:37:23.797] [DEBUG] QUERY OK db=5.4ms idle=6.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "true", "kiosk_active", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.797] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405091, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.798] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:40:38Z", "value" => ""} [2026-07-13 08:37:23.804] [DEBUG] QUERY OK db=6.2ms idle=7.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:40:38Z", "sim_operator", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.805] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405092, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.805] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"} [2026-07-13 08:37:23.812] [DEBUG] QUERY OK db=6.5ms idle=8.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "UNKNOWN", "sim_number", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.812] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405093, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.812] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"} [2026-07-13 08:37:23.819] [DEBUG] QUERY OK db=6.0ms idle=8.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "UNKNOWN", "sim_iccid", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.819] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405094, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.819] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"} [2026-07-13 08:37:23.830] [DEBUG] QUERY OK db=9.7ms idle=7.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "UNKNOWN", "sim_imsi", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.831] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405095, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.831] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"} [2026-07-13 08:37:23.838] [DEBUG] QUERY OK db=6.3ms idle=13.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "UNKNOWN", "sim_iccid2", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.838] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405096, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.839] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:40:38Z", "value" => "UNKNOWN"} [2026-07-13 08:37:23.845] [DEBUG] QUERY OK db=5.2ms queue=0.1ms idle=10.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "UNKNOWN", "sim_imsi2", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.845] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405097, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.845] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:40:38Z", "value" => "2"} [2026-07-13 08:37:23.852] [DEBUG] QUERY OK db=5.3ms idle=9.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "2", "data_usage_mb", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.852] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405098, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.853] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:40:38Z", "value" => "0"} [2026-07-13 08:37:23.860] [DEBUG] QUERY OK db=6.7ms idle=8.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "0", "mobile_data_mb", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.860] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405099, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:23.862] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:40:38Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:37:23.870] [DEBUG] QUERY OK db=7.0ms idle=10.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:40:38Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47092, ~N[2026-07-13 08:37:23], ~N[2026-07-13 08:37:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:23.872] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405100, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:40:38Z", message: nil, status_log_id: 47092, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:23], updated_at: ~N[2026-07-13 08:37:23]}} [2026-07-13 08:37:53.770] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:37:53.770] [INFO ] Incoming JSON payload: {"oid":"1e31cb6e-6761-4f4c-9477-0a0ca9770475","sn":"98251226730001","uploadTime":"2026-07-13T16:41:08Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"ram_free_mb","value":"948","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:41:08Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:37:53.771] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "1e31cb6e-6761-4f4c-9477-0a0ca9770475", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:41:08Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:41:08Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:41:08Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:41:08Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:41:08Z", "value" => "948"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:41:08Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:41:08Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:41:08Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:41:08Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:41:08Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:41:08Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:41:08Z", "vendor" => "morefun"} [2026-07-13 08:37:53.771] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:37:53.771] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:37:53.771] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:37:53.772] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=945.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:37:53.774] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=763.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:37:53.776] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:37:53.778] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.7ms idle=3.7ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:37:53.778] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:37:53.787] [DEBUG] QUERY OK source="tms_terminals" db=8.0ms idle=5.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:37:53], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:37:53.788] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:37:53.789] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=10.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:37:53.795] [DEBUG] QUERY OK source="tms_terminals" db=5.9ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:37:53], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:37:53.801] [DEBUG] QUERY OK db=5.6ms idle=6.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "1e31cb6e-6761-4f4c-9477-0a0ca9770475", "2026-07-13T16:41:08Z", ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:37:53.801] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47093, oid: "1e31cb6e-6761-4f4c-9477-0a0ca9770475", upload_time: "2026-07-13T16:41:08Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]} [2026-07-13 08:37:53.801] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:41:08Z", "value" => "morefun"} [2026-07-13 08:37:53.810] [DEBUG] QUERY OK db=8.4ms idle=6.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "morefun", "vendor", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.810] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405101, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.811] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:41:08Z", "value" => "kiosk_launcher"} [2026-07-13 08:37:53.819] [DEBUG] QUERY OK db=7.4ms idle=10.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "kiosk_launcher", "model", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.819] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405102, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.820] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:41:08Z", "value" => "1.0"} [2026-07-13 08:37:53.826] [DEBUG] QUERY OK db=6.2ms queue=0.1ms idle=9.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "1.0", "app_version", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.826] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405103, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.827] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:41:08Z", "value" => "13"} [2026-07-13 08:37:53.833] [DEBUG] QUERY OK db=6.2ms idle=7.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "13", "android_version", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.833] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405104, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.833] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:41:08Z", "value" => "948"} [2026-07-13 08:37:53.840] [DEBUG] QUERY OK db=6.5ms idle=2.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "948", "ram_free_mb", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.841] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405105, itemkey: "ram_free_mb", value: "948", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.841] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:41:08Z", "value" => "WIFI"} [2026-07-13 08:37:53.846] [DEBUG] QUERY OK db=5.0ms idle=8.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "WIFI", "network_type", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.846] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405106, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.846] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:41:08Z", "value" => "true"} [2026-07-13 08:37:53.854] [DEBUG] QUERY OK db=7.3ms queue=0.2ms idle=6.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "true", "kiosk_active", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.854] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405107, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.855] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:41:08Z", "value" => ""} [2026-07-13 08:37:53.860] [DEBUG] QUERY OK db=5.4ms idle=8.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:41:08Z", "sim_operator", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.861] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405108, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.861] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"} [2026-07-13 08:37:53.869] [DEBUG] QUERY OK db=8.1ms queue=0.1ms idle=6.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "UNKNOWN", "sim_number", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.870] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405109, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.870] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"} [2026-07-13 08:37:53.876] [DEBUG] QUERY OK db=5.6ms idle=9.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "UNKNOWN", "sim_iccid", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.876] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405110, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.876] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"} [2026-07-13 08:37:53.883] [DEBUG] QUERY OK db=6.1ms idle=7.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "UNKNOWN", "sim_imsi", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.883] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405111, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.883] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"} [2026-07-13 08:37:53.888] [DEBUG] QUERY OK db=5.1ms idle=7.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "UNKNOWN", "sim_iccid2", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.888] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405112, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.889] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:41:08Z", "value" => "UNKNOWN"} [2026-07-13 08:37:53.895] [DEBUG] QUERY OK db=6.4ms idle=6.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "UNKNOWN", "sim_imsi2", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.896] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405113, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.896] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:41:08Z", "value" => "2"} [2026-07-13 08:37:53.903] [DEBUG] QUERY OK db=6.6ms idle=7.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "2", "data_usage_mb", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.903] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405114, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.903] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:41:08Z", "value" => "0"} [2026-07-13 08:37:53.910] [DEBUG] QUERY OK db=6.5ms idle=8.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "0", "mobile_data_mb", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.910] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405115, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:37:53.911] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:41:08Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:37:53.919] [DEBUG] QUERY OK db=7.1ms idle=8.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:41:08Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47093, ~N[2026-07-13 08:37:53], ~N[2026-07-13 08:37:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:37:53.920] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405116, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:41:08Z", message: nil, status_log_id: 47093, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:37:53], updated_at: ~N[2026-07-13 08:37:53]}} [2026-07-13 08:39:42.512] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:39:42.512] [INFO ] Incoming JSON payload: {"oid":"95f1e784-04cf-49b3-a2b0-4e911f8b671a","sn":"98251226730001","uploadTime":"2026-07-13T16:42:57Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"ram_free_mb","value":"943","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:42:57Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:39:42.513] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "95f1e784-04cf-49b3-a2b0-4e911f8b671a", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:42:57Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:42:57Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:42:57Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:42:57Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:42:57Z", "value" => "943"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:42:57Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:42:57Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:42:57Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:42:57Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:42:57Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:42:57Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:42:57Z", "vendor" => "morefun"} [2026-07-13 08:39:42.514] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:39:42.514] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:39:42.514] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:39:42.516] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms queue=0.4ms idle=1074.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:39:42.517] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=297.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:39:42.517] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:39:42.519] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.1ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:39:42.519] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:39:42.533] [DEBUG] QUERY OK source="tms_terminals" db=13.3ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:39:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:39:42.534] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:39:42.535] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=15.3ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:39:42.549] [DEBUG] QUERY OK source="tms_terminals" db=13.3ms queue=0.1ms idle=2.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:39:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:39:42.561] [DEBUG] QUERY OK db=12.1ms idle=14.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "95f1e784-04cf-49b3-a2b0-4e911f8b671a", "2026-07-13T16:42:57Z", ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:39:42.562] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47094, oid: "95f1e784-04cf-49b3-a2b0-4e911f8b671a", upload_time: "2026-07-13T16:42:57Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]} [2026-07-13 08:39:42.562] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:42:57Z", "value" => "morefun"} [2026-07-13 08:39:42.579] [DEBUG] QUERY OK db=15.7ms idle=14.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "morefun", "vendor", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.579] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405117, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.579] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:42:57Z", "value" => "kiosk_launcher"} [2026-07-13 08:39:42.597] [DEBUG] QUERY OK db=16.6ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "kiosk_launcher", "model", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.597] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405118, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.597] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:42:57Z", "value" => "1.0"} [2026-07-13 08:39:42.615] [DEBUG] QUERY OK db=17.4ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "1.0", "app_version", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.615] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405119, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.615] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:42:57Z", "value" => "13"} [2026-07-13 08:39:42.633] [DEBUG] QUERY OK db=17.1ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "13", "android_version", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.633] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405120, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.633] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:42:57Z", "value" => "943"} [2026-07-13 08:39:42.646] [DEBUG] QUERY OK db=12.1ms idle=18.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "943", "ram_free_mb", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.647] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405121, itemkey: "ram_free_mb", value: "943", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.647] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:42:57Z", "value" => "WIFI"} [2026-07-13 08:39:42.663] [DEBUG] QUERY OK db=14.4ms idle=15.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "WIFI", "network_type", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.663] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405122, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.663] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:42:57Z", "value" => "true"} [2026-07-13 08:39:42.680] [DEBUG] QUERY OK db=15.4ms idle=19.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "true", "kiosk_active", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.681] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405123, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.681] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:42:57Z", "value" => ""} [2026-07-13 08:39:42.700] [DEBUG] QUERY OK db=16.7ms idle=20.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:42:57Z", "sim_operator", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.700] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405124, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.701] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"} [2026-07-13 08:39:42.715] [DEBUG] QUERY OK db=13.2ms idle=21.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "UNKNOWN", "sim_number", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.715] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405125, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.716] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"} [2026-07-13 08:39:42.733] [DEBUG] QUERY OK db=16.5ms idle=16.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "UNKNOWN", "sim_iccid", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.734] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405126, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.734] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"} [2026-07-13 08:39:42.753] [DEBUG] QUERY OK db=19.1ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "UNKNOWN", "sim_imsi", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.754] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405127, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.754] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"} [2026-07-13 08:39:42.771] [DEBUG] QUERY OK db=17.2ms idle=21.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "UNKNOWN", "sim_iccid2", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.773] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405128, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.774] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:42:57Z", "value" => "UNKNOWN"} [2026-07-13 08:39:42.789] [DEBUG] QUERY OK db=14.6ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "UNKNOWN", "sim_imsi2", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.789] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405129, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.789] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:42:57Z", "value" => "2"} [2026-07-13 08:39:42.804] [DEBUG] QUERY OK db=13.9ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "2", "data_usage_mb", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.805] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405130, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.805] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:42:57Z", "value" => "0"} [2026-07-13 08:39:42.817] [DEBUG] QUERY OK db=11.8ms idle=16.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "0", "mobile_data_mb", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.817] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405131, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:42.818] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:42:57Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:39:42.835] [DEBUG] QUERY OK db=16.6ms idle=13.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:42:57Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47094, ~N[2026-07-13 08:39:42], ~N[2026-07-13 08:39:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:42.836] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405132, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:42:57Z", message: nil, status_log_id: 47094, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:42], updated_at: ~N[2026-07-13 08:39:42]}} [2026-07-13 08:39:53.066] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:39:53.066] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:43:07Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:43:07Z","value":"56"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:43:07Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:43:07Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:43:07Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:43:07Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:43:07Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:43:07Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:43:07Z","vendor":"MoreFun"} [2026-07-13 08:39:53.066] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:43:07Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:43:07Z", "value" => "56"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:43:07Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:43:07Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:43:07Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:43:07Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:43:07Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:43:07Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:43:07Z", "vendor" => "MoreFun"} [2026-07-13 08:39:53.067] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:39:53.067] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:39:53.067] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:39:53.068] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=816.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:39:53.069] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=628.2ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:39:53.070] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:39:53.075] [DEBUG] QUERY OK source="parameter_definitions" db=1.2ms queue=0.4ms idle=2.8ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:39:53.076] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms queue=0.1ms idle=5.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:165 [2026-07-13 08:39:53.115] [DEBUG] QUERY OK source="pos_merchant" db=38.0ms idle=2.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:39:53.116] [DEBUG] QUERY OK db=0.8ms queue=0.5ms idle=1704.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 ["490603880000000"] [2026-07-13 08:39:53.116] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:39:53.122] [DEBUG] QUERY OK source="pos_terminal_data" db=2.2ms idle=42.5ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:39:53.125] [DEBUG] QUERY OK source="address" db=3.1ms idle=7.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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:39:53.125] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:39:53.128] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:39:53.143] [DEBUG] QUERY OK db=14.3ms idle=7.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "75c93c001a38281124ad5f3aecbcb0312e55701e01424ea71272ee939818fe2e", 4228, 915, ~U[2026-07-13 08:39:53Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:39:53.144] [INFO ] AutoPushService: Created push log 33527 for MF919 params.zip [2026-07-13 08:39:53.144] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4228, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:39:53.144] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:39:53.144] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:39:53.146] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=1.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:39:53.151] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:39:53.180] [DEBUG] QUERY OK db=27.1ms idle=7.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "2623c5bb768bd6c88e0738a072a1955e8c6de1dd614fd3e2ef1545d6de34543d", 13666, 17947, ~U[2026-07-13 08:39:53Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:39:53.180] [INFO ] AutoPushService: Created push log 33528 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:39:53.181] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 13666, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:39:53.181] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:39:53.181] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:39:53.183] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=2.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:39:53.183] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:39:53.184] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=0.3ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:39:53.184] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:39:53.187] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:39:53.187] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:39:53.187] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:39:53.190] [DEBUG] QUERY OK source="config_file_versions" db=2.3ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:39:53.191] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:39:53.191] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:39:53.191] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=4.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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:39:53.256] [DEBUG] QUERY OK source="tms_terminals" db=21.4ms queue=42.6ms idle=2.1ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:39:53], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:39:53.256] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:39:53.256] [INFO ] Event published: terminal_updated [2026-07-13 08:39:53.256] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:39:53.257] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.6ms queue=0.1ms idle=3.4ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:39:53], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:39:53.256] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:39:53.258] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:39:53.260] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.1ms idle=1.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:39:53.261] [DEBUG] QUERY OK source="terminal_group_rules" db=0.7ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:39:53.261] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:39:53.311] [DEBUG] QUERY OK source="tms_terminals" db=12.3ms queue=40.7ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:39:53], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:39:53.313] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=50.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:39:53.314] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:39:53.314] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:39:53.315] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:39:53.380] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms queue=40.7ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:39:53], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:39:53.413] [DEBUG] QUERY OK db=31.9ms idle=65.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:43:07Z", ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:39:53.413] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47095, oid: "organization_id", upload_time: "2026-07-13T16:43:07Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]} [2026-07-13 08:39:53.413] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:43:07Z", "value" => "online"} [2026-07-13 08:39:53.431] [DEBUG] QUERY OK db=17.3ms idle=33.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:43:07Z", "online", "status", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.431] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405133, itemkey: "status", value: "online", timestamp: "2026-07-13T16:43:07Z", message: "Terminal status update", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.431] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:39:53.431] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:43:07Z", "value" => "56"} [2026-07-13 08:39:53.444] [DEBUG] QUERY OK db=12.8ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:43:07Z", "56", "battery", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.445] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405134, itemkey: "battery", value: "56", timestamp: "2026-07-13T16:43:07Z", message: "Battery level", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.445] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:43:07Z", "value" => "online"} [2026-07-13 08:39:53.492] [DEBUG] QUERY OK db=46.9ms idle=14.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:43:07Z", "online", "network", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.492] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405135, itemkey: "network", value: "online", timestamp: "2026-07-13T16:43:07Z", message: "Network connectivity", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.492] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:39:53.493] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:43:07Z", "value" => "0"} [2026-07-13 08:39:53.524] [DEBUG] QUERY OK db=30.8ms queue=0.1ms idle=48.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:43:07Z", "0", "cpu", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.524] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405136, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:43:07Z", message: "CPU usage percentage", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.525] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:43:07Z", "value" => "1.0.0"} [2026-07-13 08:39:53.557] [DEBUG] QUERY OK db=32.0ms idle=32.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:43:07Z", "1.0.0", "parameter_config", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.557] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405137, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:43:07Z", message: "Current parameters version", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.557] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:43:07Z", "value" => "1.0.1"} [2026-07-13 08:39:53.649] [DEBUG] QUERY OK db=91.5ms idle=33.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:43:07Z", "1.0.1", "emv_config", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405138, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:43:07Z", message: "Current EMV config version", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.650] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:43:07Z", "value" => ""} [2026-07-13 08:39:53.704] [DEBUG] QUERY OK db=12.3ms queue=41.4ms idle=93.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:43:07Z", "keys_config", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.704] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405139, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:43:07Z", message: "Current keys config version", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.704] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:43:07Z", "value" => ""} [2026-07-13 08:39:53.717] [DEBUG] QUERY OK db=10.7ms queue=1.6ms idle=55.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:43:07Z", "application", 47095, ~N[2026-07-13 08:39:53], ~N[2026-07-13 08:39:53]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:39:53.717] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405140, itemkey: "application", value: nil, timestamp: "2026-07-13T16:43:07Z", message: "Current application version", status_log_id: 47095, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:39:53], updated_at: ~N[2026-07-13 08:39:53]}} [2026-07-13 08:39:53.718] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:43:08Z"} [2026-07-13 08:39:53.718] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:43:08Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 51, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:40:12.601] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:40:12.601] [INFO ] Incoming JSON payload: {"oid":"06933028-2406-44df-8afe-e0842d29d1ae","sn":"98251226730001","uploadTime":"2026-07-13T16:43:27Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"ram_free_mb","value":"944","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:43:27Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:40:12.602] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "06933028-2406-44df-8afe-e0842d29d1ae", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:43:27Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:43:27Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:43:27Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:43:27Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:43:27Z", "value" => "944"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:43:27Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:43:27Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:43:27Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:43:27Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:43:27Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:43:27Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:43:27Z", "vendor" => "morefun"} [2026-07-13 08:40:12.602] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:40:12.602] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:40:12.603] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:40:12.604] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms idle=1162.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:40:12.608] [DEBUG] QUERY OK source="parameter_templates" db=3.1ms idle=266.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:40:12.608] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:40:12.610] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.8ms idle=4.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:40:12.626] [DEBUG] QUERY OK source="tms_terminals" db=14.1ms idle=2.7ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:40:12], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:40:12.626] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:40:12.626] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:40:12.626] [INFO ] Event published: terminal_updated [2026-07-13 08:40:12.626] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:40:12.626] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:40:12.627] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.8ms queue=0.2ms idle=16.3ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:40:12], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:40:12.629] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=3.2ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:40:12.629] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms idle=0.1ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:40:12.630] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:40:12.690] [DEBUG] QUERY OK source="tms_terminals" db=21.6ms queue=40.7ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:40:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:40:12.690] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:40:12.692] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=61.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:40:12.757] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms queue=41.0ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:40:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:40:12.769] [DEBUG] QUERY OK db=11.8ms queue=0.1ms idle=65.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "06933028-2406-44df-8afe-e0842d29d1ae", "2026-07-13T16:43:27Z", ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:40:12.769] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47096, oid: "06933028-2406-44df-8afe-e0842d29d1ae", upload_time: "2026-07-13T16:43:27Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]} [2026-07-13 08:40:12.770] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:43:27Z", "value" => "morefun"} [2026-07-13 08:40:12.826] [DEBUG] QUERY OK db=14.6ms queue=40.5ms idle=13.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "morefun", "vendor", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.826] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405141, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.826] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:43:27Z", "value" => "kiosk_launcher"} [2026-07-13 08:40:12.893] [DEBUG] QUERY OK db=25.8ms queue=40.9ms idle=57.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "kiosk_launcher", "model", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.894] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405142, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.894] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:43:27Z", "value" => "1.0"} [2026-07-13 08:40:12.911] [DEBUG] QUERY OK db=16.5ms idle=68.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "1.0", "app_version", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.911] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405143, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.911] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:43:27Z", "value" => "13"} [2026-07-13 08:40:12.923] [DEBUG] QUERY OK db=11.2ms idle=17.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "13", "android_version", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.923] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405144, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.923] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:43:27Z", "value" => "944"} [2026-07-13 08:40:12.942] [DEBUG] QUERY OK db=18.4ms idle=13.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "944", "ram_free_mb", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.942] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405145, itemkey: "ram_free_mb", value: "944", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.942] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:43:27Z", "value" => "WIFI"} [2026-07-13 08:40:12.967] [DEBUG] QUERY OK db=23.9ms idle=20.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "WIFI", "network_type", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.967] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405146, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.967] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:43:27Z", "value" => "true"} [2026-07-13 08:40:12.998] [DEBUG] QUERY OK db=30.8ms idle=25.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "true", "kiosk_active", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:12.999] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405147, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:12.999] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:43:27Z", "value" => ""} [2026-07-13 08:40:13.014] [DEBUG] QUERY OK db=15.1ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:43:27Z", "sim_operator", 47096, ~N[2026-07-13 08:40:12], ~N[2026-07-13 08:40:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.015] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405148, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:12], updated_at: ~N[2026-07-13 08:40:12]}} [2026-07-13 08:40:13.015] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"} [2026-07-13 08:40:13.031] [DEBUG] QUERY OK db=13.6ms idle=18.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "UNKNOWN", "sim_number", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405149, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.031] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"} [2026-07-13 08:40:13.065] [DEBUG] QUERY OK db=33.4ms idle=17.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "UNKNOWN", "sim_iccid", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.065] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405150, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.065] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"} [2026-07-13 08:40:13.098] [DEBUG] QUERY OK db=32.0ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "UNKNOWN", "sim_imsi", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.101] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405151, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.101] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"} [2026-07-13 08:40:13.120] [DEBUG] QUERY OK db=17.7ms idle=37.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "UNKNOWN", "sim_iccid2", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.120] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405152, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.120] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:43:27Z", "value" => "UNKNOWN"} [2026-07-13 08:40:13.134] [DEBUG] QUERY OK db=13.1ms idle=22.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "UNKNOWN", "sim_imsi2", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.134] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405153, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.134] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:43:27Z", "value" => "2"} [2026-07-13 08:40:13.156] [DEBUG] QUERY OK db=21.6ms idle=14.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "2", "data_usage_mb", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.156] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405154, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.156] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:43:27Z", "value" => "0"} [2026-07-13 08:40:13.180] [DEBUG] QUERY OK db=22.8ms idle=23.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "0", "mobile_data_mb", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.180] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405155, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.181] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:43:27Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:40:13.209] [DEBUG] QUERY OK db=27.5ms queue=0.1ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:27Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47096, ~N[2026-07-13 08:40:13], ~N[2026-07-13 08:40:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:13.210] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405156, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:43:27Z", message: nil, status_log_id: 47096, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:13], updated_at: ~N[2026-07-13 08:40:13]}} [2026-07-13 08:40:13.480] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:43:08Z"} [2026-07-13 08:40:13.481] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:43:08Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<58, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 52, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:40:19.072] [INFO ] Running offline device check... [2026-07-13 08:40:19.073] [INFO ] Starting offline device check... [2026-07-13 08:40:19.074] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=715.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:40:19.082] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=635.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.088] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms queue=0.1ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.090] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.091] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.091] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.095] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.101] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.113] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.115] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.116] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.116] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.129] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.7ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=13.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.133] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.134] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.135] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.147] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=12.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.158] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.164] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.164] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.167] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.170] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.171] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:40:19.171] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 08:40:19.171] [INFO ] Offline device check completed successfully [2026-07-13 08:40:42.699] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:40:42.699] [INFO ] Incoming JSON payload: {"oid":"6ffc50a2-7032-4fe5-a954-0db90d46794f","sn":"98251226730001","uploadTime":"2026-07-13T16:43:57Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"ram_free_mb","value":"927","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:43:57Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:40:42.700] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "6ffc50a2-7032-4fe5-a954-0db90d46794f", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:43:57Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:43:57Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:43:57Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:43:57Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:43:57Z", "value" => "927"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:43:57Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:43:57Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:43:57Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:43:57Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:43:57Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:43:57Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:43:57Z", "vendor" => "morefun"} [2026-07-13 08:40:42.701] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:40:42.701] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:40:42.701] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:40:42.701] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=269.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:40:42.702] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=259.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:40:42.702] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:40:42.703] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=1.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:40:42.704] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:40:42.780] [DEBUG] QUERY OK source="tms_terminals" db=32.4ms queue=43.9ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:40:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:40:42.781] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:40:42.782] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=77.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:40:42.795] [DEBUG] QUERY OK source="tms_terminals" db=13.0ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:40:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:40:42.821] [DEBUG] QUERY OK db=25.6ms queue=0.4ms idle=13.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "6ffc50a2-7032-4fe5-a954-0db90d46794f", "2026-07-13T16:43:57Z", ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:40:42.822] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47097, oid: "6ffc50a2-7032-4fe5-a954-0db90d46794f", upload_time: "2026-07-13T16:43:57Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]} [2026-07-13 08:40:42.822] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:43:57Z", "value" => "morefun"} [2026-07-13 08:40:42.845] [DEBUG] QUERY OK db=22.9ms idle=27.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "morefun", "vendor", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.846] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405157, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.846] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:43:57Z", "value" => "kiosk_launcher"} [2026-07-13 08:40:42.873] [DEBUG] QUERY OK db=26.1ms idle=25.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "kiosk_launcher", "model", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.873] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405158, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.874] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:43:57Z", "value" => "1.0"} [2026-07-13 08:40:42.892] [DEBUG] QUERY OK db=17.7ms idle=28.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "1.0", "app_version", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.892] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405159, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.892] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:43:57Z", "value" => "13"} [2026-07-13 08:40:42.911] [DEBUG] QUERY OK db=17.7ms idle=19.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "13", "android_version", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.911] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405160, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.911] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:43:57Z", "value" => "927"} [2026-07-13 08:40:42.937] [DEBUG] QUERY OK db=25.0ms idle=20.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "927", "ram_free_mb", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.937] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405161, itemkey: "ram_free_mb", value: "927", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.937] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:43:57Z", "value" => "WIFI"} [2026-07-13 08:40:42.960] [DEBUG] QUERY OK db=22.0ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "WIFI", "network_type", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.960] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405162, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.960] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:43:57Z", "value" => "true"} [2026-07-13 08:40:42.976] [DEBUG] QUERY OK db=15.8ms idle=23.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "true", "kiosk_active", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.976] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405163, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.976] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:43:57Z", "value" => ""} [2026-07-13 08:40:42.995] [DEBUG] QUERY OK db=18.1ms idle=17.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:43:57Z", "sim_operator", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:42.995] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405164, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:42.995] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"} [2026-07-13 08:40:43.014] [DEBUG] QUERY OK db=18.0ms idle=19.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "UNKNOWN", "sim_number", 47097, ~N[2026-07-13 08:40:42], ~N[2026-07-13 08:40:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.014] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405165, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:42], updated_at: ~N[2026-07-13 08:40:42]}} [2026-07-13 08:40:43.014] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"} [2026-07-13 08:40:43.037] [DEBUG] QUERY OK db=22.4ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "UNKNOWN", "sim_iccid", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.037] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405166, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:40:43.037] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"} [2026-07-13 08:40:43.060] [DEBUG] QUERY OK db=22.2ms idle=23.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "UNKNOWN", "sim_imsi", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.060] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405167, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:40:43.060] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"} [2026-07-13 08:40:43.076] [DEBUG] QUERY OK db=15.9ms idle=23.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "UNKNOWN", "sim_iccid2", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.077] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405168, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:40:43.077] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:43:57Z", "value" => "UNKNOWN"} [2026-07-13 08:40:43.101] [DEBUG] QUERY OK db=23.7ms queue=0.1ms idle=17.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "UNKNOWN", "sim_imsi2", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.102] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405169, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:40:43.102] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:43:57Z", "value" => "2"} [2026-07-13 08:40:43.121] [DEBUG] QUERY OK db=18.7ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "2", "data_usage_mb", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.121] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405170, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:40:43.121] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:43:57Z", "value" => "0"} [2026-07-13 08:40:43.154] [DEBUG] QUERY OK db=32.8ms idle=20.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "0", "mobile_data_mb", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.155] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405171, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:40:43.155] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:43:57Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:40:43.185] [DEBUG] QUERY OK db=28.4ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:43:57Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47097, ~N[2026-07-13 08:40:43], ~N[2026-07-13 08:40:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:40:43.186] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405172, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:43:57Z", message: nil, status_log_id: 47097, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:40:43], updated_at: ~N[2026-07-13 08:40:43]}} [2026-07-13 08:41:12.793] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:41:12.794] [INFO ] Incoming JSON payload: {"oid":"416eda8b-7822-4848-9562-9f1969e0bcf4","sn":"98251226730001","uploadTime":"2026-07-13T16:44:27Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"ram_free_mb","value":"935","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:44:27Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:41:12.796] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "416eda8b-7822-4848-9562-9f1969e0bcf4", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:44:27Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:44:27Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:44:27Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:44:27Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:44:27Z", "value" => "935"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:44:27Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:44:27Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:44:27Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:44:27Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:44:27Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:44:27Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:44:27Z", "vendor" => "morefun"} [2026-07-13 08:41:12.796] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:41:12.796] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:41:12.796] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:41:12.798] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.2ms idle=348.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:41:12.799] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=259.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:41:12.799] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:41:12.801] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:41:12.801] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:41:12.825] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:41:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:41:12.825] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:41:12.828] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms queue=0.2ms idle=24.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:41:12.844] [DEBUG] QUERY OK source="tms_terminals" db=14.1ms idle=4.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:41:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:41:12.858] [DEBUG] QUERY OK db=13.9ms idle=16.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "416eda8b-7822-4848-9562-9f1969e0bcf4", "2026-07-13T16:44:27Z", ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:41:12.859] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47098, oid: "416eda8b-7822-4848-9562-9f1969e0bcf4", upload_time: "2026-07-13T16:44:27Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]} [2026-07-13 08:41:12.859] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:44:27Z", "value" => "morefun"} [2026-07-13 08:41:12.892] [DEBUG] QUERY OK db=31.6ms idle=16.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "morefun", "vendor", 47098, ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:12.892] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405173, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]}} [2026-07-13 08:41:12.892] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:44:27Z", "value" => "kiosk_launcher"} [2026-07-13 08:41:12.917] [DEBUG] QUERY OK db=23.9ms idle=34.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "kiosk_launcher", "model", 47098, ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:12.918] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405174, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]}} [2026-07-13 08:41:12.918] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:44:27Z", "value" => "1.0"} [2026-07-13 08:41:12.935] [DEBUG] QUERY OK db=16.8ms idle=26.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "1.0", "app_version", 47098, ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:12.936] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405175, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]}} [2026-07-13 08:41:12.936] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:44:27Z", "value" => "13"} [2026-07-13 08:41:12.953] [DEBUG] QUERY OK db=16.4ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "13", "android_version", 47098, ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:12.953] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405176, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]}} [2026-07-13 08:41:12.953] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:44:27Z", "value" => "935"} [2026-07-13 08:41:12.990] [DEBUG] QUERY OK db=32.6ms queue=4.3ms idle=17.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "935", "ram_free_mb", 47098, ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:12.991] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405177, itemkey: "ram_free_mb", value: "935", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]}} [2026-07-13 08:41:12.991] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:44:27Z", "value" => "WIFI"} [2026-07-13 08:41:13.022] [DEBUG] QUERY OK db=31.3ms idle=39.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "WIFI", "network_type", 47098, ~N[2026-07-13 08:41:12], ~N[2026-07-13 08:41:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.023] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405178, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:12], updated_at: ~N[2026-07-13 08:41:12]}} [2026-07-13 08:41:13.023] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:44:27Z", "value" => "true"} [2026-07-13 08:41:13.037] [DEBUG] QUERY OK db=13.8ms idle=32.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "true", "kiosk_active", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.037] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405179, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.038] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:44:27Z", "value" => ""} [2026-07-13 08:41:13.051] [DEBUG] QUERY OK db=13.5ms idle=15.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:44:27Z", "sim_operator", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405180, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.053] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"} [2026-07-13 08:41:13.084] [DEBUG] QUERY OK db=31.0ms idle=16.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "UNKNOWN", "sim_number", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.084] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405181, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.085] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"} [2026-07-13 08:41:13.118] [DEBUG] QUERY OK db=33.0ms idle=33.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "UNKNOWN", "sim_iccid", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.118] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405182, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.120] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"} [2026-07-13 08:41:13.132] [DEBUG] QUERY OK db=11.4ms idle=35.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "UNKNOWN", "sim_imsi", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.133] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405183, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.134] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"} [2026-07-13 08:41:13.149] [DEBUG] QUERY OK db=11.9ms idle=18.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "UNKNOWN", "sim_iccid2", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.149] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405184, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.149] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:44:27Z", "value" => "UNKNOWN"} [2026-07-13 08:41:13.181] [DEBUG] QUERY OK db=30.7ms idle=18.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "UNKNOWN", "sim_imsi2", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.181] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405185, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.181] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:44:27Z", "value" => "2"} [2026-07-13 08:41:13.210] [DEBUG] QUERY OK db=28.5ms idle=32.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "2", "data_usage_mb", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.211] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405186, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.211] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:44:27Z", "value" => "0"} [2026-07-13 08:41:13.234] [DEBUG] QUERY OK db=22.9ms idle=30.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "0", "mobile_data_mb", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405187, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:13.235] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:44:27Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:41:13.254] [DEBUG] QUERY OK db=17.5ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:27Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47098, ~N[2026-07-13 08:41:13], ~N[2026-07-13 08:41:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:13.255] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405188, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:44:27Z", message: nil, status_log_id: 47098, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:13], updated_at: ~N[2026-07-13 08:41:13]}} [2026-07-13 08:41:42.880] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:41:42.880] [INFO ] Incoming JSON payload: {"oid":"e764c5c4-b773-48a4-b2d0-e107c1ae318d","sn":"98251226730001","uploadTime":"2026-07-13T16:44:57Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"ram_free_mb","value":"932","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:44:57Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:41:42.882] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e764c5c4-b773-48a4-b2d0-e107c1ae318d", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:44:57Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:44:57Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:44:57Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:44:57Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:44:57Z", "value" => "932"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:44:57Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:44:57Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:44:57Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:44:57Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:44:57Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:44:57Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:44:57Z", "vendor" => "morefun"} [2026-07-13 08:41:42.882] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:41:42.882] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:41:42.883] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:41:42.884] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=1245.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:41:42.884] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=242.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:41:42.885] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:41:42.885] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:41:42.886] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:41:42.914] [DEBUG] QUERY OK source="tms_terminals" db=27.7ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:41:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:41:42.914] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:41:42.916] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=29.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:41:42.938] [DEBUG] QUERY OK source="tms_terminals" db=21.7ms idle=2.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:41:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:41:42.950] [DEBUG] QUERY OK db=10.9ms queue=0.1ms idle=22.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "e764c5c4-b773-48a4-b2d0-e107c1ae318d", "2026-07-13T16:44:57Z", ~N[2026-07-13 08:41:42], ~N[2026-07-13 08:41:42]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:41:42.950] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47099, oid: "e764c5c4-b773-48a4-b2d0-e107c1ae318d", upload_time: "2026-07-13T16:44:57Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:42], updated_at: ~N[2026-07-13 08:41:42]} [2026-07-13 08:41:42.950] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:44:57Z", "value" => "morefun"} [2026-07-13 08:41:42.968] [DEBUG] QUERY OK db=17.4ms idle=12.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "morefun", "vendor", 47099, ~N[2026-07-13 08:41:42], ~N[2026-07-13 08:41:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:42.968] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405189, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:42], updated_at: ~N[2026-07-13 08:41:42]}} [2026-07-13 08:41:42.968] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:44:57Z", "value" => "kiosk_launcher"} [2026-07-13 08:41:42.992] [DEBUG] QUERY OK db=23.2ms idle=18.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "kiosk_launcher", "model", 47099, ~N[2026-07-13 08:41:42], ~N[2026-07-13 08:41:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:42.992] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405190, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:42], updated_at: ~N[2026-07-13 08:41:42]}} [2026-07-13 08:41:42.992] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:44:57Z", "value" => "1.0"} [2026-07-13 08:41:43.027] [DEBUG] QUERY OK db=33.5ms queue=0.1ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "1.0", "app_version", 47099, ~N[2026-07-13 08:41:42], ~N[2026-07-13 08:41:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.027] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405191, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:42], updated_at: ~N[2026-07-13 08:41:42]}} [2026-07-13 08:41:43.027] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:44:57Z", "value" => "13"} [2026-07-13 08:41:43.045] [DEBUG] QUERY OK db=17.3ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "13", "android_version", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.045] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405192, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.045] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:44:57Z", "value" => "932"} [2026-07-13 08:41:43.057] [DEBUG] QUERY OK db=11.2ms queue=0.1ms idle=19.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "932", "ram_free_mb", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.057] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405193, itemkey: "ram_free_mb", value: "932", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.057] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:44:57Z", "value" => "WIFI"} [2026-07-13 08:41:43.080] [DEBUG] QUERY OK db=22.5ms idle=12.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "WIFI", "network_type", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.080] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405194, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.081] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:44:57Z", "value" => "true"} [2026-07-13 08:41:43.105] [DEBUG] QUERY OK db=23.5ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "true", "kiosk_active", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.105] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405195, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.105] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:44:57Z", "value" => ""} [2026-07-13 08:41:43.134] [DEBUG] QUERY OK db=28.1ms queue=0.1ms idle=25.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:44:57Z", "sim_operator", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.134] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405196, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.134] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"} [2026-07-13 08:41:43.152] [DEBUG] QUERY OK db=17.1ms idle=29.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "UNKNOWN", "sim_number", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.152] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405197, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.152] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"} [2026-07-13 08:41:43.175] [DEBUG] QUERY OK db=23.1ms idle=18.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "UNKNOWN", "sim_iccid", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.176] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405198, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.176] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"} [2026-07-13 08:41:43.200] [DEBUG] QUERY OK db=23.5ms idle=24.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "UNKNOWN", "sim_imsi", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.200] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405199, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.200] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"} [2026-07-13 08:41:43.234] [DEBUG] QUERY OK db=33.5ms queue=0.3ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "UNKNOWN", "sim_iccid2", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405200, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.235] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:44:57Z", "value" => "UNKNOWN"} [2026-07-13 08:41:43.253] [DEBUG] QUERY OK db=17.0ms idle=36.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "UNKNOWN", "sim_imsi2", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.253] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405201, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.253] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:44:57Z", "value" => "2"} [2026-07-13 08:41:43.265] [DEBUG] QUERY OK db=10.7ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "2", "data_usage_mb", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.265] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405202, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.265] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:44:57Z", "value" => "0"} [2026-07-13 08:41:43.285] [DEBUG] QUERY OK db=19.9ms idle=12.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "0", "mobile_data_mb", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.286] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405203, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:41:43.287] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:44:57Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:41:43.331] [DEBUG] QUERY OK db=42.0ms queue=0.1ms idle=23.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:44:57Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47099, ~N[2026-07-13 08:41:43], ~N[2026-07-13 08:41:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:41:43.332] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405204, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:44:57Z", message: nil, status_log_id: 47099, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:41:43], updated_at: ~N[2026-07-13 08:41:43]}} [2026-07-13 08:42:15.630] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:42:15.630] [INFO ] Incoming JSON payload: {"oid":"11abd05c-b34d-4074-b200-f8be9ca8aa00","sn":"98251226730001","uploadTime":"2026-07-13T16:45:29Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"ram_free_mb","value":"1022","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:45:29Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.m (truncated) [2026-07-13 08:42:15.631] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "11abd05c-b34d-4074-b200-f8be9ca8aa00", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:45:29Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:45:29Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:45:29Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:45:29Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:45:29Z", "value" => "1022"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:45:29Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:45:29Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:45:29Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:45:29Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:45:29Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:45:29Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:45:29Z", "vendor" => "morefun"} [2026-07-13 08:42:15.632] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:42:15.632] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:42:15.632] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:42:15.633] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=869.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:42:15.634] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=177.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:42:15.634] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:42:15.634] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:42:15.635] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:42:15.660] [DEBUG] QUERY OK source="tms_terminals" db=25.2ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:42:15], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:42:15.660] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:42:15.661] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=26.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:42:15.679] [DEBUG] QUERY OK source="tms_terminals" db=17.6ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:42:15], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:42:15.703] [DEBUG] QUERY OK db=23.0ms idle=18.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "11abd05c-b34d-4074-b200-f8be9ca8aa00", "2026-07-13T16:45:29Z", ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:42:15.703] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47100, oid: "11abd05c-b34d-4074-b200-f8be9ca8aa00", upload_time: "2026-07-13T16:45:29Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]} [2026-07-13 08:42:15.703] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:45:29Z", "value" => "morefun"} [2026-07-13 08:42:15.727] [DEBUG] QUERY OK db=23.7ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "morefun", "vendor", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.728] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405205, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.728] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:45:29Z", "value" => "kiosk_launcher"} [2026-07-13 08:42:15.757] [DEBUG] QUERY OK db=28.5ms idle=25.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "kiosk_launcher", "model", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.757] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405206, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.757] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:45:29Z", "value" => "1.0"} [2026-07-13 08:42:15.775] [DEBUG] QUERY OK db=17.6ms queue=0.2ms idle=30.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "1.0", "app_version", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.776] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405207, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.776] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:45:29Z", "value" => "13"} [2026-07-13 08:42:15.790] [DEBUG] QUERY OK db=14.0ms idle=10.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "13", "android_version", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.791] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405208, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.791] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:45:29Z", "value" => "1022"} [2026-07-13 08:42:15.816] [DEBUG] QUERY OK db=24.5ms idle=15.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "1022", "ram_free_mb", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.816] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405209, itemkey: "ram_free_mb", value: "1022", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.816] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:45:29Z", "value" => "WIFI"} [2026-07-13 08:42:15.851] [DEBUG] QUERY OK db=34.1ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "WIFI", "network_type", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.851] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405210, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.851] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:45:29Z", "value" => "true"} [2026-07-13 08:42:15.865] [DEBUG] QUERY OK db=13.9ms idle=35.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "true", "kiosk_active", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.866] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405211, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.866] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:45:29Z", "value" => ""} [2026-07-13 08:42:15.878] [DEBUG] QUERY OK db=11.9ms idle=15.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:45:29Z", "sim_operator", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.878] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405212, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.879] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"} [2026-07-13 08:42:15.899] [DEBUG] QUERY OK db=20.6ms idle=13.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "UNKNOWN", "sim_number", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.900] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405213, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.900] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"} [2026-07-13 08:42:15.929] [DEBUG] QUERY OK db=29.1ms idle=22.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "UNKNOWN", "sim_iccid", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.930] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405214, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.930] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"} [2026-07-13 08:42:15.953] [DEBUG] QUERY OK db=22.7ms idle=31.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "UNKNOWN", "sim_imsi", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.954] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405215, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.954] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"} [2026-07-13 08:42:15.968] [DEBUG] QUERY OK db=14.0ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "UNKNOWN", "sim_iccid2", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:15.968] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405216, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:15.969] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:45:29Z", "value" => "UNKNOWN"} [2026-07-13 08:42:16.004] [DEBUG] QUERY OK db=34.9ms idle=15.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "UNKNOWN", "sim_imsi2", 47100, ~N[2026-07-13 08:42:15], ~N[2026-07-13 08:42:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:16.005] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405217, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:15], updated_at: ~N[2026-07-13 08:42:15]}} [2026-07-13 08:42:16.005] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:45:29Z", "value" => "2"} [2026-07-13 08:42:16.018] [DEBUG] QUERY OK db=11.8ms idle=37.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "2", "data_usage_mb", 47100, ~N[2026-07-13 08:42:16], ~N[2026-07-13 08:42:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:16.018] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405218, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:16], updated_at: ~N[2026-07-13 08:42:16]}} [2026-07-13 08:42:16.018] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:45:29Z", "value" => "0"} [2026-07-13 08:42:16.030] [DEBUG] QUERY OK db=11.9ms idle=14.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "0", "mobile_data_mb", 47100, ~N[2026-07-13 08:42:16], ~N[2026-07-13 08:42:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:16.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405219, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:16], updated_at: ~N[2026-07-13 08:42:16]}} [2026-07-13 08:42:16.032] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:45:29Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:42:16.068] [DEBUG] QUERY OK db=33.8ms queue=0.4ms idle=15.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:45:29Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47100, ~N[2026-07-13 08:42:16], ~N[2026-07-13 08:42:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:16.068] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405220, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:45:29Z", message: nil, status_log_id: 47100, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:16], updated_at: ~N[2026-07-13 08:42:16]}} [2026-07-13 08:42:18.277] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:42:18.277] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:45:32Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:45:32Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:45:32Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:45:32Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:45:32Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:45:32Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:45:32Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:45:32Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:45:32Z","vendor":"MoreFun"} [2026-07-13 08:42:18.277] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:45:32Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:45:32Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:45:32Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:45:32Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:45:32Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:45:32Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:45:32Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:45:32Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:45:32Z", "vendor" => "MoreFun"} [2026-07-13 08:42:18.277] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:42:18.277] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:42:18.278] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:42:18.278] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=504.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:42:18.279] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=420.9ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:42:18.281] [DEBUG] QUERY OK source="parameter_template_values" db=1.3ms idle=1.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:42:18.283] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.6ms idle=2.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:42:18.284] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms idle=2.8ms 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:165 [2026-07-13 08:42:18.326] [DEBUG] QUERY OK source="pos_merchant" db=40.8ms idle=1.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:42:18.327] [DEBUG] QUERY OK db=0.7ms queue=0.5ms idle=1893.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 ["490603880000000"] [2026-07-13 08:42:18.327] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:42:18.328] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms idle=43.0ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:42:18.329] [DEBUG] QUERY OK source="address" db=0.6ms idle=2.5ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:42:18.329] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:42:18.330] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:42:18.358] [DEBUG] QUERY OK db=27.3ms idle=2.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "81570a919218e73edb8f6c2b3214050377d9588f2de2f311857d8a5034c7051d", 13922, 915, ~U[2026-07-13 08:42:18Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:42:18.358] [INFO ] AutoPushService: Created push log 33529 for MF919 params.zip [2026-07-13 08:42:18.358] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 13922, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:42:18.358] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:42:18.359] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:42:18.360] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=29.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:42:18.363] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:42:18.404] [DEBUG] QUERY OK db=39.1ms queue=1.5ms idle=5.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8e9970da88d3af579f9c33dc189c40e995902618c79ea003ab23bdfaf45c0c82", 14018, 17947, ~U[2026-07-13 08:42:18Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:42:18.405] [INFO ] AutoPushService: Created push log 33530 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:42:18.405] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 14018, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:42:18.405] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:42:18.405] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:42:18.407] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=46.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:42:18.407] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:42:18.408] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=2.7ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:42:18.408] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:42:18.409] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:42:18.409] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:42:18.410] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:42:18.410] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=3.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:42:18.411] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:42:18.411] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:42:18.412] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:42:18.465] [DEBUG] QUERY OK source="tms_terminals" db=11.1ms queue=41.4ms idle=1.4ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:42:18], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:42:18.465] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:42:18.465] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:42:18.465] [INFO ] Event published: terminal_updated [2026-07-13 08:42:18.465] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:42:18.466] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:42:18.466] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.6ms queue=0.3ms idle=53.7ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:42:18], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:42:18.467] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=2.1ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:42:18.468] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:42:18.468] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:42:18.571] [DEBUG] QUERY OK source="tms_terminals" db=63.3ms queue=40.7ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:42:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:42:18.573] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms idle=103.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:42:18.573] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=2.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:42:18.574] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:42:18.574] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:42:18.664] [DEBUG] QUERY OK source="tms_terminals" db=47.2ms queue=41.8ms idle=1.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:42:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:42:18.693] [DEBUG] QUERY OK db=29.3ms idle=89.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:45:32Z", ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:42:18.694] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47101, oid: "organization_id", upload_time: "2026-07-13T16:45:32Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]} [2026-07-13 08:42:18.694] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:45:32Z", "value" => "online"} [2026-07-13 08:42:18.733] [DEBUG] QUERY OK db=39.2ms idle=30.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:45:32Z", "online", "status", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.734] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405221, itemkey: "status", value: "online", timestamp: "2026-07-13T16:45:32Z", message: "Terminal status update", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.734] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:42:18.734] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:45:32Z", "value" => "55"} [2026-07-13 08:42:18.767] [DEBUG] QUERY OK db=32.8ms idle=40.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:45:32Z", "55", "battery", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.767] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405222, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:45:32Z", message: "Battery level", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.768] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:45:32Z", "value" => "online"} [2026-07-13 08:42:18.793] [DEBUG] QUERY OK db=25.0ms idle=34.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:45:32Z", "online", "network", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.794] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405223, itemkey: "network", value: "online", timestamp: "2026-07-13T16:45:32Z", message: "Network connectivity", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.794] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:42:18.794] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:45:32Z", "value" => "0"} [2026-07-13 08:42:18.835] [DEBUG] QUERY OK db=41.1ms idle=16.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:45:32Z", "0", "cpu", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.836] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405224, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:45:32Z", message: "CPU usage percentage", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.836] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:45:32Z", "value" => "1.0.0"} [2026-07-13 08:42:18.856] [DEBUG] QUERY OK db=19.9ms idle=42.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:45:32Z", "1.0.0", "parameter_config", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.856] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405225, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:45:32Z", message: "Current parameters version", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.857] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:45:32Z", "value" => "1.0.1"} [2026-07-13 08:42:18.874] [DEBUG] QUERY OK db=16.8ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:45:32Z", "1.0.1", "emv_config", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.876] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405226, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:45:32Z", message: "Current EMV config version", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.877] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:45:32Z", "value" => ""} [2026-07-13 08:42:18.942] [DEBUG] QUERY OK db=23.0ms queue=41.9ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:45:32Z", "keys_config", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:18.942] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405227, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:45:32Z", message: "Current keys config version", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:18.942] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:45:32Z", "value" => ""} [2026-07-13 08:42:19.008] [DEBUG] QUERY OK db=23.0ms queue=41.9ms idle=68.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:45:32Z", "application", 47101, ~N[2026-07-13 08:42:18], ~N[2026-07-13 08:42:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:42:19.008] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405228, itemkey: "application", value: nil, timestamp: "2026-07-13T16:45:32Z", message: "Current application version", status_log_id: 47101, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:42:18], updated_at: ~N[2026-07-13 08:42:18]}} [2026-07-13 08:42:19.008] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:45:33Z"} [2026-07-13 08:42:19.008] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:45:33Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 59, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:42:38.710] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:45:33Z"} [2026-07-13 08:42:43.712] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:45:33Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<58, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 60, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:43:03.512] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:43:03.512] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:45:58Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:45:58Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:45:58Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:45:58Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:45:58Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:45:58Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:45:58Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:45:58Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:45:58Z","vendor":"MoreFun"} [2026-07-13 08:43:03.513] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:45:58Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:45:58Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:45:58Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:45:58Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:45:58Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:45:58Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:45:58Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:45:58Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:45:58Z", "vendor" => "MoreFun"} [2026-07-13 08:43:03.513] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:43:03.513] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:43:03.513] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:43:03.520] [DEBUG] QUERY OK source="parameter_templates" db=6.8ms idle=592.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:43:03.527] [DEBUG] QUERY OK source="tms_terminals" db=6.7ms idle=55.3ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:43:03.537] [DEBUG] QUERY OK source="parameter_template_values" db=9.1ms queue=0.4ms idle=7.4ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:43:03.548] [DEBUG] QUERY OK source="parameter_definitions" db=8.2ms queue=1.4ms idle=10.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:43:03.553] [DEBUG] QUERY OK source="pos_terminal" db=5.0ms idle=10.8ms 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:165 [2026-07-13 08:43:03.591] [DEBUG] QUERY OK source="pos_merchant" db=37.6ms idle=5.9ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:43:03.593] [DEBUG] QUERY OK db=0.6ms queue=1.0ms idle=1155.5ms 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 ["490603880000000"] [2026-07-13 08:43:03.593] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:43:03.598] [DEBUG] QUERY OK source="pos_terminal_data" db=4.5ms idle=40.5ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:43:03.604] [DEBUG] QUERY OK source="address" db=5.8ms idle=7.2ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:43:03.605] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:43:03.611] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:43:03.637] [DEBUG] QUERY OK db=24.1ms idle=14.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "681705fe6077e63f5198684e9d82c81741f1af56b2eeefcff13a6240dff2a29d", 14210, 915, ~U[2026-07-13 08:43:03Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:43:03.637] [INFO ] AutoPushService: Created push log 33531 for MF919 params.zip [2026-07-13 08:43:03.637] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 14210, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:43:03.637] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:43:03.637] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:43:03.641] [DEBUG] QUERY OK source="config_file_versions" db=3.4ms idle=33.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:43:03.652] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:43:03.674] [DEBUG] QUERY OK db=19.6ms idle=18.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "5f0695e12d927a525fa2603241266fd793d68ebd98de22d162c7f3a6df7b102f", 14306, 17947, ~U[2026-07-13 08:43:03Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:43:03.674] [INFO ] AutoPushService: Created push log 33532 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:43:03.674] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 14306, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:43:03.675] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:43:03.675] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:43:03.681] [DEBUG] QUERY OK source="config_file_versions" db=5.6ms idle=34.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:43:03.681] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:43:03.687] [DEBUG] QUERY OK source="tms_terminals" db=3.4ms queue=0.1ms idle=9.1ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:43:03.687] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:43:03.691] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:43:03.691] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:43:03.692] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:43:03.693] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=10.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:43:03.693] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:43:03.693] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:43:03.695] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=6.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:43:03.696] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:43:03.721] [DEBUG] QUERY OK source="tms_terminals" db=24.6ms idle=2.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:43:03], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:43:03.722] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=25.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:43:03.725] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=1.8ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:43:03.725] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:43:03.726] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.9ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:43:03.754] [DEBUG] QUERY OK source="tms_terminals" db=27.2ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:43:03], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:43:03.765] [DEBUG] QUERY OK db=10.8ms idle=28.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:45:58Z", ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:43:03.765] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47102, oid: "organization_id", upload_time: "2026-07-13T16:45:58Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]} [2026-07-13 08:43:03.766] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:45:58Z", "value" => "online"} [2026-07-13 08:43:03.791] [DEBUG] QUERY OK db=25.2ms idle=12.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:45:58Z", "online", "status", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.791] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405229, itemkey: "status", value: "online", timestamp: "2026-07-13T16:45:58Z", message: "Terminal status update", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.791] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:43:03.792] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:45:58Z", "value" => "55"} [2026-07-13 08:43:03.823] [DEBUG] QUERY OK db=31.2ms queue=0.1ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:45:58Z", "55", "battery", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.823] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405230, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:45:58Z", message: "Battery level", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.824] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:45:58Z", "value" => "online"} [2026-07-13 08:43:03.855] [DEBUG] QUERY OK db=31.2ms idle=34.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:45:58Z", "online", "network", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.855] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405231, itemkey: "network", value: "online", timestamp: "2026-07-13T16:45:58Z", message: "Network connectivity", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.856] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:43:03.856] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:45:58Z", "value" => "0"} [2026-07-13 08:43:03.869] [DEBUG] QUERY OK db=12.7ms idle=32.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:45:58Z", "0", "cpu", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.871] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405232, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:45:58Z", message: "CPU usage percentage", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.871] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:45:58Z", "value" => "1.0.0"} [2026-07-13 08:43:03.889] [DEBUG] QUERY OK db=17.1ms idle=16.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:45:58Z", "1.0.0", "parameter_config", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.889] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405233, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:45:58Z", message: "Current parameters version", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.889] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:45:58Z", "value" => "1.0.1"} [2026-07-13 08:43:03.919] [DEBUG] QUERY OK db=29.5ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:45:58Z", "1.0.1", "emv_config", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.919] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405234, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:45:58Z", message: "Current EMV config version", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.919] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:45:58Z", "value" => ""} [2026-07-13 08:43:03.956] [DEBUG] QUERY OK db=36.2ms idle=30.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:45:58Z", "keys_config", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.956] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405235, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:45:58Z", message: "Current keys config version", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.956] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:45:58Z", "value" => ""} [2026-07-13 08:43:03.972] [DEBUG] QUERY OK db=15.5ms idle=30.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:45:58Z", "application", 47102, ~N[2026-07-13 08:43:03], ~N[2026-07-13 08:43:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:03.973] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405236, itemkey: "application", value: nil, timestamp: "2026-07-13T16:45:58Z", message: "Current application version", status_log_id: 47102, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:03], updated_at: ~N[2026-07-13 08:43:03]}} [2026-07-13 08:43:03.973] [WARN ] Unexpected async result [2026-07-13 08:43:03.974] [WARN ] Unexpected async result [2026-07-13 08:43:05.727] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:43:05.727] [INFO ] Incoming JSON payload: {"oid":"afa12114-98b3-416e-9fdf-0f7db3f0165e","sn":"98251226730001","uploadTime":"2026-07-13T16:46:00Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"ram_free_mb","value":"964","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:46:00Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:43:05.729] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "afa12114-98b3-416e-9fdf-0f7db3f0165e", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:46:00Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:46:00Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:46:00Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:46:00Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:46:00Z", "value" => "964"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:46:00Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:46:00Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:46:00Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:46:00Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:46:00Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:46:00Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:46:00Z", "vendor" => "morefun"} [2026-07-13 08:43:05.729] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:43:05.729] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:43:05.729] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:43:05.732] [DEBUG] QUERY OK source="parameter_templates" db=2.5ms idle=796.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:43:05.733] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms queue=0.1ms idle=269.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:43:05.733] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:43:05.735] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.6ms idle=2.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:43:05.767] [DEBUG] QUERY OK source="tms_terminals" db=29.5ms queue=0.1ms idle=4.0ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:43:05], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:43:05.767] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:43:05.767] [INFO ] Event published: terminal_updated [2026-07-13 08:43:05.768] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:43:05.768] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:43:05.768] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.7ms idle=32.7ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:43:05], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:43:05.769] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:43:05.771] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=0.1ms idle=0.3ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:43:05.772] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:43:05.772] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:43:05.825] [DEBUG] QUERY OK source="tms_terminals" db=14.7ms queue=41.6ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:43:05], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:43:05.825] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:43:05.827] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=53.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:43:05.889] [DEBUG] QUERY OK source="tms_terminals" db=20.2ms queue=40.9ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:43:05], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:43:05.921] [DEBUG] QUERY OK db=32.0ms idle=62.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "afa12114-98b3-416e-9fdf-0f7db3f0165e", "2026-07-13T16:46:00Z", ~N[2026-07-13 08:43:05], ~N[2026-07-13 08:43:05]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:43:05.921] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47103, oid: "afa12114-98b3-416e-9fdf-0f7db3f0165e", upload_time: "2026-07-13T16:46:00Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:05], updated_at: ~N[2026-07-13 08:43:05]} [2026-07-13 08:43:05.921] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:46:00Z", "value" => "morefun"} [2026-07-13 08:43:05.984] [DEBUG] QUERY OK db=20.3ms queue=41.7ms idle=33.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "morefun", "vendor", 47103, ~N[2026-07-13 08:43:05], ~N[2026-07-13 08:43:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:05.984] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405237, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:05], updated_at: ~N[2026-07-13 08:43:05]}} [2026-07-13 08:43:05.984] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:46:00Z", "value" => "kiosk_launcher"} [2026-07-13 08:43:06.040] [DEBUG] QUERY OK db=14.4ms queue=40.9ms idle=48.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "kiosk_launcher", "model", 47103, ~N[2026-07-13 08:43:05], ~N[2026-07-13 08:43:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.040] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405238, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:05], updated_at: ~N[2026-07-13 08:43:05]}} [2026-07-13 08:43:06.040] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:46:00Z", "value" => "1.0"} [2026-07-13 08:43:06.070] [DEBUG] QUERY OK db=29.4ms idle=56.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "1.0", "app_version", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.070] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405239, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.070] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:46:00Z", "value" => "13"} [2026-07-13 08:43:06.106] [DEBUG] QUERY OK db=34.3ms idle=30.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "13", "android_version", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.106] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405240, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.106] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:46:00Z", "value" => "964"} [2026-07-13 08:43:06.126] [DEBUG] QUERY OK db=19.4ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "964", "ram_free_mb", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.127] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405241, itemkey: "ram_free_mb", value: "964", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.127] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:46:00Z", "value" => "WIFI"} [2026-07-13 08:43:06.141] [DEBUG] QUERY OK db=13.4ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "WIFI", "network_type", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.141] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405242, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.141] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:46:00Z", "value" => "true"} [2026-07-13 08:43:06.176] [DEBUG] QUERY OK db=32.6ms idle=17.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "true", "kiosk_active", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.176] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405243, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.177] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:46:00Z", "value" => ""} [2026-07-13 08:43:06.206] [DEBUG] QUERY OK db=29.2ms idle=36.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:46:00Z", "sim_operator", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.208] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405244, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.208] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:06.222] [DEBUG] QUERY OK db=13.6ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "UNKNOWN", "sim_number", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.223] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405245, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.223] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:06.237] [DEBUG] QUERY OK db=13.9ms idle=17.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "UNKNOWN", "sim_iccid", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.238] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405246, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.238] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:06.261] [DEBUG] QUERY OK db=20.2ms queue=0.1ms idle=18.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "UNKNOWN", "sim_imsi", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.261] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405247, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.261] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:06.286] [DEBUG] QUERY OK db=24.1ms idle=23.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "UNKNOWN", "sim_iccid2", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.286] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405248, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.286] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:46:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:06.320] [DEBUG] QUERY OK db=33.5ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "UNKNOWN", "sim_imsi2", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405249, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.320] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:46:00Z", "value" => "2"} [2026-07-13 08:43:06.336] [DEBUG] QUERY OK db=15.4ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "2", "data_usage_mb", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.338] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405250, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.338] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:46:00Z", "value" => "0"} [2026-07-13 08:43:06.360] [DEBUG] QUERY OK db=21.8ms idle=18.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "0", "mobile_data_mb", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.360] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405251, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:06.361] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:46:00Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:43:06.398] [DEBUG] QUERY OK db=36.7ms idle=25.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:46:00Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47103, ~N[2026-07-13 08:43:06], ~N[2026-07-13 08:43:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:06.399] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405252, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:46:00Z", message: nil, status_log_id: 47103, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:06], updated_at: ~N[2026-07-13 08:43:06]}} [2026-07-13 08:43:07.120] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:46:21Z"} [2026-07-13 08:43:07.121] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:46:21Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 63, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:43:07.275] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:46:21Z"} [2026-07-13 08:43:07.275] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:46:21Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 64, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:43:15.815] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:43:20.816] [INFO ] Incoming JSON payload: {"oid":"5bbc398a-15b1-44d4-84b7-c15b19dd17ce","sn":"98251226730001","uploadTime":"2026-07-13T16:46:30Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"ram_free_mb","value":"950","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:46:30Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:43:21.071] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: :ping State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: false, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :up, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: #Reference<0.3048584822.3137601537.123643>, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:43:26.088] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: {:EXIT, #PID<0.1408.0>, :ping_timeout} State: {:state, {:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}}}, :rest_for_one, {[Tortoise.Connection.Controller, Tortoise.Connection.Receiver, Tortoise.Connection.Inflight], %{Tortoise.Connection.Controller => {:child, #PID<0.1858.0>, Tortoise.Connection.Controller, {Tortoise.Connection.Controller, :start_link, [[client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Controller]}, Tortoise.Connection.Inflight => {:child, #PID<0.1423.0>, Tortoise.Connection.Inflight, {Tortoise.Connection.Inflight, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Inflight]}, Tortoise.Connection.Receiver => {:child, #PID<0.1424.0>, Tortoise.Connection.Receiver, {Tortoise.Connection.Receiver, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 500, :worker, [Tortoise.Connection.Receiver]}}}, :undefined, 3, 5, [-576453667, -576453668], 0, :never, Tortoise.Connection.Supervisor, [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]} [2026-07-13 08:43:26.104] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) exited in: :gen_statem.call({:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Receiver, "phoenix_client_piyush"}}}, {:handle_socket, Tortoise.Transport.Tcp, #Port<0.48>}, :infinity) ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started (stdlib 5.2.3.2) gen.erl:597: :gen.do_for_proc/2 (stdlib 5.2.3.2) gen_statem.erl:923: :gen_statem.call/3 (tortoise 0.10.0) lib/tortoise/connection/receiver.ex:35: Tortoise.Connection.Receiver.handle_socket/2 (tortoise 0.10.0) lib/tortoise/connection.ex:657: Tortoise.Connection.init_connection/2 (tortoise 0.10.0) lib/tortoise/connection.ex:405: Tortoise.Connection.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: :connect State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: true, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :down, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: nil, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:43:31.114] [INFO ] Device phoenix_client_piyush connected [2026-07-13 08:43:36.114] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) :subscription_timeout Last message: :subscribe State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: false, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :up, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: #Reference<0.3048584822.3137601537.128544>, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:43:41.118] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}} terminating ** (stop) :subscription_timeout Last message: {:EXIT, #PID<0.1860.0>, :subscription_timeout} State: {:state, {:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}}}, :rest_for_one, {[Tortoise.Connection.Controller, Tortoise.Connection.Receiver, Tortoise.Connection.Inflight], %{Tortoise.Connection.Controller => {:child, #PID<0.1864.0>, Tortoise.Connection.Controller, {Tortoise.Connection.Controller, :start_link, [[client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Controller]}, Tortoise.Connection.Inflight => {:child, #PID<0.1862.0>, Tortoise.Connection.Inflight, {Tortoise.Connection.Inflight, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Inflight]}, Tortoise.Connection.Receiver => {:child, #PID<0.1863.0>, Tortoise.Connection.Receiver, {Tortoise.Connection.Receiver, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 500, :worker, [Tortoise.Connection.Receiver]}}}, :undefined, 3, 5, [], 0, :never, Tortoise.Connection.Supervisor, [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]} [2026-07-13 08:43:41.123] [INFO ] Device phoenix_client_piyush connected [2026-07-13 08:43:46.168] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:43:46.168] [INFO ] Incoming JSON payload: {"oid":"02049abe-88c8-4f4b-995a-6dea5fc79462","sn":"98251226730001","uploadTime":"2026-07-13T16:47:00Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"ram_free_mb","value":"945","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:47:00Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:43:46.169] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "02049abe-88c8-4f4b-995a-6dea5fc79462", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:47:00Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:47:00Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:47:00Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:47:00Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:47:00Z", "value" => "945"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:47:00Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:47:00Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:47:00Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:47:00Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:47:00Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:47:00Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:47:00Z", "vendor" => "morefun"} [2026-07-13 08:43:46.169] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:43:46.169] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:43:46.169] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:43:46.170] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1117.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:43:46.171] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.1ms idle=116.5ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:43:46.171] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:43:46.172] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.2ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:43:46.173] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:43:46.187] [DEBUG] QUERY OK source="tms_terminals" db=13.7ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:43:46], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:43:46.187] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:43:46.188] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=14.7ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:43:46.199] [DEBUG] QUERY OK source="tms_terminals" db=10.7ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:43:46], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:43:46.220] [DEBUG] QUERY OK db=20.0ms idle=11.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "02049abe-88c8-4f4b-995a-6dea5fc79462", "2026-07-13T16:47:00Z", ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:43:46.220] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47104, oid: "02049abe-88c8-4f4b-995a-6dea5fc79462", upload_time: "2026-07-13T16:47:00Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]} [2026-07-13 08:43:46.220] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:47:00Z", "value" => "morefun"} [2026-07-13 08:43:46.253] [DEBUG] QUERY OK db=32.6ms idle=21.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "morefun", "vendor", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.253] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405253, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.253] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:47:00Z", "value" => "kiosk_launcher"} [2026-07-13 08:43:46.283] [DEBUG] QUERY OK db=28.7ms idle=34.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "kiosk_launcher", "model", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.283] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405254, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.283] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:47:00Z", "value" => "1.0"} [2026-07-13 08:43:46.299] [DEBUG] QUERY OK db=15.8ms idle=30.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "1.0", "app_version", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.299] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405255, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.299] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:47:00Z", "value" => "13"} [2026-07-13 08:43:46.332] [DEBUG] QUERY OK db=30.1ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "13", "android_version", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.332] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405256, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.332] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:47:00Z", "value" => "945"} [2026-07-13 08:43:46.357] [DEBUG] QUERY OK db=23.8ms queue=0.8ms idle=33.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "945", "ram_free_mb", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.357] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405257, itemkey: "ram_free_mb", value: "945", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.357] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:47:00Z", "value" => "WIFI"} [2026-07-13 08:43:46.384] [DEBUG] QUERY OK db=26.4ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "WIFI", "network_type", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.385] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405258, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.385] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:47:00Z", "value" => "true"} [2026-07-13 08:43:46.398] [DEBUG] QUERY OK db=12.2ms idle=29.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "true", "kiosk_active", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.399] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405259, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.400] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:47:00Z", "value" => ""} [2026-07-13 08:43:46.422] [DEBUG] QUERY OK db=22.2ms idle=15.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:47:00Z", "sim_operator", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.422] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405260, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.423] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:46.452] [DEBUG] QUERY OK db=29.1ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "UNKNOWN", "sim_number", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.452] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405261, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.452] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:46.482] [DEBUG] QUERY OK db=29.5ms idle=30.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "UNKNOWN", "sim_iccid", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.483] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405262, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.483] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:46.494] [DEBUG] QUERY OK db=10.9ms idle=30.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "UNKNOWN", "sim_imsi", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.494] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405263, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.494] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:46.522] [DEBUG] QUERY OK db=26.2ms queue=0.6ms idle=12.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "UNKNOWN", "sim_iccid2", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405264, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.522] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:47:00Z", "value" => "UNKNOWN"} [2026-07-13 08:43:46.562] [DEBUG] QUERY OK db=39.8ms idle=28.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "UNKNOWN", "sim_imsi2", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.563] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405265, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.563] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:47:00Z", "value" => "2"} [2026-07-13 08:43:46.602] [DEBUG] QUERY OK db=39.1ms idle=41.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "2", "data_usage_mb", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.603] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405266, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.603] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:47:00Z", "value" => "0"} [2026-07-13 08:43:46.638] [DEBUG] QUERY OK db=34.5ms idle=40.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "0", "mobile_data_mb", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.638] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405267, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:43:46.639] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:47:00Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:43:46.676] [DEBUG] QUERY OK db=35.6ms idle=36.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:00Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47104, ~N[2026-07-13 08:43:46], ~N[2026-07-13 08:43:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:43:46.677] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405268, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:47:00Z", message: nil, status_log_id: 47104, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:43:46], updated_at: ~N[2026-07-13 08:43:46]}} [2026-07-13 08:44:14.228] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:44:14.228] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:47:28Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:47:28Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:47:28Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:47:28Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:47:28Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:47:28Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:47:28Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:47:28Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:47:28Z","vendor":"MoreFun"} [2026-07-13 08:44:14.229] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:47:28Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:47:28Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:47:28Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:47:28Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:47:28Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:47:28Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:47:28Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:47:28Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:47:28Z", "vendor" => "MoreFun"} [2026-07-13 08:44:14.229] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:44:14.229] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:44:14.229] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:44:14.230] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1044.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:44:14.231] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=42.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:44:14.232] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:44:14.234] [DEBUG] QUERY OK source="parameter_definitions" db=0.9ms queue=0.4ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:44:14.235] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms idle=2.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:165 [2026-07-13 08:44:14.276] [DEBUG] QUERY OK source="pos_merchant" db=40.8ms queue=0.1ms idle=1.1ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:44:14.278] [DEBUG] QUERY OK db=0.8ms queue=0.4ms idle=839.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 ["490603880000000"] [2026-07-13 08:44:14.278] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:44:14.279] [DEBUG] QUERY OK source="pos_terminal_data" db=0.9ms idle=43.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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:44:14.281] [DEBUG] QUERY OK source="address" db=0.4ms idle=3.9ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:44:14.281] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:44:14.283] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:44:14.309] [DEBUG] QUERY OK db=24.4ms idle=5.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "67ba499015edfe858087ebe3655a3dc459d96109a634f4f9432e0fb3a686d6f5", 4516, 915, ~U[2026-07-13 08:44:14Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:44:14.309] [INFO ] AutoPushService: Created push log 33533 for MF919 params.zip [2026-07-13 08:44:14.309] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4516, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:44:14.309] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:44:14.309] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:44:14.310] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=29.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:44:14.314] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:44:14.343] [DEBUG] QUERY OK db=27.7ms idle=6.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "7928a51d28f65af986a7903289667e0b33ddd2ae8f926c5c2b22b589437dd6db", 15266, 17947, ~U[2026-07-13 08:44:14Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:44:14.343] [INFO ] AutoPushService: Created push log 33534 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:44:14.344] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 15266, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:44:14.344] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:44:14.344] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:44:14.347] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.3ms idle=34.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:44:14.347] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:44:14.349] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=4.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:44:14.349] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:44:14.351] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:44:14.352] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:44:14.352] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:44:14.353] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=6.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:44:14.353] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:44:14.353] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:44:14.354] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=4.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:44:14.412] [DEBUG] QUERY OK source="tms_terminals" db=15.5ms queue=42.4ms idle=1.4ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:44:14], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:44:14.412] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:44:14.413] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:44:14.413] [INFO ] Event published: terminal_updated [2026-07-13 08:44:14.413] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:44:14.413] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:44:14.414] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.7ms queue=0.1ms idle=59.4ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:44:14], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:44:14.416] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=2.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:44:14.417] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms idle=0.5ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:44:14.417] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:44:14.474] [DEBUG] QUERY OK source="tms_terminals" db=16.7ms queue=42.1ms idle=0.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:44:14], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:44:14.475] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=57.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:44:14.476] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:44:14.476] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:44:14.477] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:44:14.551] [DEBUG] QUERY OK source="tms_terminals" db=32.7ms queue=40.7ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:44:14], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:44:14.569] [DEBUG] QUERY OK db=17.8ms queue=0.1ms idle=74.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:47:28Z", ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:44:14.570] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47105, oid: "organization_id", upload_time: "2026-07-13T16:47:28Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]} [2026-07-13 08:44:14.570] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:47:28Z", "value" => "online"} [2026-07-13 08:44:14.588] [DEBUG] QUERY OK db=18.0ms idle=19.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:47:28Z", "online", "status", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.589] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405269, itemkey: "status", value: "online", timestamp: "2026-07-13T16:47:28Z", message: "Terminal status update", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.589] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:44:14.589] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:47:28Z", "value" => "55"} [2026-07-13 08:44:14.613] [DEBUG] QUERY OK db=23.3ms idle=19.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:47:28Z", "55", "battery", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.613] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405270, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:47:28Z", message: "Battery level", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.613] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:47:28Z", "value" => "online"} [2026-07-13 08:44:14.642] [DEBUG] QUERY OK db=28.2ms idle=25.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:47:28Z", "online", "network", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.642] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405271, itemkey: "network", value: "online", timestamp: "2026-07-13T16:47:28Z", message: "Network connectivity", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.642] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:44:14.643] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:47:28Z", "value" => "0"} [2026-07-13 08:44:14.661] [DEBUG] QUERY OK db=17.2ms queue=0.1ms idle=30.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:47:28Z", "0", "cpu", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.661] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405272, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:47:28Z", message: "CPU usage percentage", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.661] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:47:28Z", "value" => "1.0.0"} [2026-07-13 08:44:14.673] [DEBUG] QUERY OK db=11.6ms idle=19.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:47:28Z", "1.0.0", "parameter_config", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.674] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405273, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:47:28Z", message: "Current parameters version", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.675] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:47:28Z", "value" => "1.0.1"} [2026-07-13 08:44:14.702] [DEBUG] QUERY OK db=26.4ms idle=14.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:47:28Z", "1.0.1", "emv_config", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.702] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405274, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:47:28Z", message: "Current EMV config version", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.702] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:47:28Z", "value" => ""} [2026-07-13 08:44:14.768] [DEBUG] QUERY OK db=24.5ms queue=40.9ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:47:28Z", "keys_config", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.768] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405275, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:47:28Z", message: "Current keys config version", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.769] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:47:28Z", "value" => ""} [2026-07-13 08:44:14.821] [DEBUG] QUERY OK db=11.2ms queue=41.2ms idle=66.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:47:28Z", "application", 47105, ~N[2026-07-13 08:44:14], ~N[2026-07-13 08:44:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:14.822] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405276, itemkey: "application", value: nil, timestamp: "2026-07-13T16:47:28Z", message: "Current application version", status_log_id: 47105, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:14], updated_at: ~N[2026-07-13 08:44:14]}} [2026-07-13 08:44:14.822] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:47:29Z"} [2026-07-13 08:44:14.822] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:47:29Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 3, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :up, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{"phoenix_client_piyush" => true}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:44:14.847] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:47:29Z"} [2026-07-13 08:44:14.847] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:47:29Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 4, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:44:16.294] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:44:16.294] [INFO ] Incoming JSON payload: {"oid":"24987fad-1ae2-4a36-87e0-7eb914304d55","sn":"98251226730001","uploadTime":"2026-07-13T16:47:30Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"ram_free_mb","value":"941","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:47:30Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:44:16.295] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "24987fad-1ae2-4a36-87e0-7eb914304d55", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:47:30Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:47:30Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:47:30Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:47:30Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:47:30Z", "value" => "941"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:47:30Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:47:30Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:47:30Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:47:30Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:47:30Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:47:30Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:47:30Z", "vendor" => "morefun"} [2026-07-13 08:44:16.295] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:44:16.295] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:44:16.296] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:44:16.297] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1103.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:44:16.298] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=101.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:44:16.298] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:44:16.300] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=0.6ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:44:16.334] [DEBUG] QUERY OK source="tms_terminals" db=31.4ms queue=0.1ms idle=4.3ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:44:16], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:44:16.334] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:44:16.335] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:44:16.334] [INFO ] Event published: terminal_updated [2026-07-13 08:44:16.335] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:44:16.335] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:44:16.336] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.8ms idle=34.5ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:44:16], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:44:16.339] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms idle=0.7ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:44:16.340] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms idle=0.3ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:44:16.340] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:44:16.389] [DEBUG] QUERY OK source="tms_terminals" db=11.2ms queue=41.0ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:44:16], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:44:16.389] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:44:16.390] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=49.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:44:16.463] [DEBUG] QUERY OK source="tms_terminals" db=30.9ms queue=41.4ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:44:16], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:44:16.494] [DEBUG] QUERY OK db=30.2ms queue=0.2ms idle=73.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "24987fad-1ae2-4a36-87e0-7eb914304d55", "2026-07-13T16:47:30Z", ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:44:16.494] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47106, oid: "24987fad-1ae2-4a36-87e0-7eb914304d55", upload_time: "2026-07-13T16:47:30Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]} [2026-07-13 08:44:16.494] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:47:30Z", "value" => "morefun"} [2026-07-13 08:44:16.558] [DEBUG] QUERY OK db=21.5ms queue=41.5ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "morefun", "vendor", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.558] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405277, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.558] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:47:30Z", "value" => "kiosk_launcher"} [2026-07-13 08:44:16.626] [DEBUG] QUERY OK db=24.2ms queue=42.4ms idle=64.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "kiosk_launcher", "model", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.626] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405278, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.626] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:47:30Z", "value" => "1.0"} [2026-07-13 08:44:16.641] [DEBUG] QUERY OK db=13.5ms idle=69.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "1.0", "app_version", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.641] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405279, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.641] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:47:30Z", "value" => "13"} [2026-07-13 08:44:16.655] [DEBUG] QUERY OK db=13.4ms idle=16.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "13", "android_version", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.656] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405280, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.656] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:47:30Z", "value" => "941"} [2026-07-13 08:44:16.684] [DEBUG] QUERY OK db=27.0ms idle=15.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "941", "ram_free_mb", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.684] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405281, itemkey: "ram_free_mb", value: "941", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.684] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:47:30Z", "value" => "WIFI"} [2026-07-13 08:44:16.709] [DEBUG] QUERY OK db=24.3ms idle=29.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "WIFI", "network_type", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.709] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405282, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.709] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:47:30Z", "value" => "true"} [2026-07-13 08:44:16.735] [DEBUG] QUERY OK db=24.9ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "true", "kiosk_active", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.735] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405283, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.735] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:47:30Z", "value" => ""} [2026-07-13 08:44:16.751] [DEBUG] QUERY OK db=13.8ms queue=1.0ms idle=26.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:47:30Z", "sim_operator", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.751] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405284, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.751] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"} [2026-07-13 08:44:16.774] [DEBUG] QUERY OK db=22.2ms idle=16.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "UNKNOWN", "sim_number", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.774] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405285, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.774] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"} [2026-07-13 08:44:16.797] [DEBUG] QUERY OK db=22.7ms idle=23.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "UNKNOWN", "sim_iccid", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.798] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405286, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.798] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"} [2026-07-13 08:44:16.821] [DEBUG] QUERY OK db=22.7ms queue=0.1ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "UNKNOWN", "sim_imsi", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.821] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405287, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.821] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"} [2026-07-13 08:44:16.836] [DEBUG] QUERY OK db=14.3ms idle=24.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "UNKNOWN", "sim_iccid2", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.836] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405288, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.836] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:47:30Z", "value" => "UNKNOWN"} [2026-07-13 08:44:16.848] [DEBUG] QUERY OK db=11.2ms idle=15.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "UNKNOWN", "sim_imsi2", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405289, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.848] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:47:30Z", "value" => "2"} [2026-07-13 08:44:16.870] [DEBUG] QUERY OK db=21.8ms idle=12.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "2", "data_usage_mb", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.871] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405290, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.871] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:47:30Z", "value" => "0"} [2026-07-13 08:44:16.895] [DEBUG] QUERY OK db=24.1ms idle=23.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "0", "mobile_data_mb", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.898] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405291, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:16.899] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:47:30Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:44:16.926] [DEBUG] QUERY OK db=26.7ms queue=0.1ms idle=28.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:47:30Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47106, ~N[2026-07-13 08:44:16], ~N[2026-07-13 08:44:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:44:16.927] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405292, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:47:30Z", message: nil, status_log_id: 47106, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:44:16], updated_at: ~N[2026-07-13 08:44:16]}} [2026-07-13 08:44:20.119] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:44:25.121] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:47:34Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:47:34Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:47:34Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:47:34Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:47:34Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:47:34Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:47:34Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:47:34Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:47:34Z","vendor":"MoreFun"} [2026-07-13 08:44:30.123] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:47:34Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:47:34Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:47:34Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:47:34Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:47:34Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:47:34Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:47:34Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:47:34Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:47:34Z", "vendor" => "MoreFun"} [2026-07-13 08:44:35.125] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:44:40.126] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:44:45.126] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:44:46.125] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: :ping State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: false, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :up, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: #Reference<0.3048584822.3137601537.128882>, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:44:51.129] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: {:EXIT, #PID<0.1865.0>, :ping_timeout} State: {:state, {:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}}}, :rest_for_one, {[Tortoise.Connection.Controller, Tortoise.Connection.Receiver, Tortoise.Connection.Inflight], %{Tortoise.Connection.Controller => {:child, #PID<0.1874.0>, Tortoise.Connection.Controller, {Tortoise.Connection.Controller, :start_link, [[client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Controller]}, Tortoise.Connection.Inflight => {:child, #PID<0.1867.0>, Tortoise.Connection.Inflight, {Tortoise.Connection.Inflight, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Inflight]}, Tortoise.Connection.Receiver => {:child, #PID<0.1868.0>, Tortoise.Connection.Receiver, {Tortoise.Connection.Receiver, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 500, :worker, [Tortoise.Connection.Receiver]}}}, :undefined, 3, 5, [-576453600, -576453600], 0, :never, Tortoise.Connection.Supervisor, [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]} [2026-07-13 08:44:51.136] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) exited in: :gen_statem.call({:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Receiver, "phoenix_client_piyush"}}}, {:handle_socket, Tortoise.Transport.Tcp, #Port<0.52>}, :infinity) ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started (stdlib 5.2.3.2) gen.erl:597: :gen.do_for_proc/2 (stdlib 5.2.3.2) gen_statem.erl:923: :gen_statem.call/3 (tortoise 0.10.0) lib/tortoise/connection/receiver.ex:35: Tortoise.Connection.Receiver.handle_socket/2 (tortoise 0.10.0) lib/tortoise/connection.ex:657: Tortoise.Connection.init_connection/2 (tortoise 0.10.0) lib/tortoise/connection.ex:405: Tortoise.Connection.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: :connect State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: true, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :down, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: nil, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:44:54.288] [INFO ] Device phoenix_client_piyush connected [2026-07-13 08:45:15.356] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 08:45:15.357] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=1879.7ms 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-07-13 08:45:15.358] [DEBUG] QUERY OK source="filter_usage" db=0.5ms idle=967.9ms 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-07-13 08:45:15.358] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 08:45:15.516] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:45:15.517] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:48:30Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:48:30Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:48:30Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:48:30Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:48:30Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:48:30Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:48:30Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:48:30Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:48:30Z","vendor":"MoreFun"} [2026-07-13 08:45:15.517] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:48:30Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:48:30Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:48:30Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:48:30Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:48:30Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:48:30Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:48:30Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:48:30Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:48:30Z", "vendor" => "MoreFun"} [2026-07-13 08:45:15.517] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:45:15.517] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:45:15.517] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:45:15.518] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=158.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:45:15.519] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=126.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:45:15.520] [DEBUG] QUERY OK source="parameter_template_values" db=0.9ms queue=0.1ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:45:15.523] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=1.4ms idle=1.6ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:45:15.524] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms idle=3.1ms 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:165 [2026-07-13 08:45:15.565] [DEBUG] QUERY OK source="pos_merchant" db=40.7ms idle=1.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:45:15.566] [DEBUG] QUERY OK db=0.7ms queue=0.6ms idle=118.0ms 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 ["490603880000000"] [2026-07-13 08:45:15.566] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:45:15.567] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms idle=42.8ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:45:15.568] [DEBUG] QUERY OK source="address" db=0.5ms idle=2.8ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:45:15.568] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:45:15.569] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:45:15.594] [DEBUG] QUERY OK db=23.8ms idle=2.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "3ced7aee9c70d8d90dd43abb9a633e3c259e5ae0ff5f23827dd193ec66a13c0f", 15906, 915, ~U[2026-07-13 08:45:15Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:45:15.594] [INFO ] AutoPushService: Created push log 33535 for MF919 params.zip [2026-07-13 08:45:15.594] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 15906, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:45:15.594] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:45:15.594] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:45:15.596] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=26.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:45:15.599] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:45:15.629] [DEBUG] QUERY OK db=28.3ms idle=6.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "25e12e4d925155f6ac9d8603aaed05fee96df7ad0714949fc1a42d7fd95d579f", 4676, 17947, ~U[2026-07-13 08:45:15Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:45:15.629] [INFO ] AutoPushService: Created push log 33536 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:45:15.629] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 4676, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:45:15.629] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:45:15.629] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:45:15.630] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=33.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:45:15.630] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:45:15.631] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.1ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:45:15.631] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:45:15.632] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:45:15.632] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:45:15.632] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:45:15.633] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:45:15.634] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:45:15.634] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:45:15.634] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=2.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:45:15.692] [DEBUG] QUERY OK source="tms_terminals" db=16.6ms queue=40.7ms idle=1.4ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:45:15], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:45:15.692] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:45:15.693] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:45:15.693] [INFO ] Event published: terminal_updated [2026-07-13 08:45:15.693] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:45:15.693] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:45:15.694] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.3ms queue=0.1ms idle=58.3ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:45:15], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:45:15.696] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.1ms idle=2.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:45:15.697] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.3ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:45:15.697] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:45:15.752] [DEBUG] QUERY OK source="tms_terminals" db=15.9ms queue=41.4ms idle=0.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:45:15], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:45:15.754] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=1.1ms idle=55.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:45:15.756] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:45:15.756] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:45:15.757] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:45:15.823] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms queue=42.2ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:45:15], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:45:15.842] [DEBUG] QUERY OK db=18.3ms idle=65.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:48:30Z", ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:45:15.842] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47107, oid: "organization_id", upload_time: "2026-07-13T16:48:30Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]} [2026-07-13 08:45:15.842] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:48:30Z", "value" => "online"} [2026-07-13 08:45:15.858] [DEBUG] QUERY OK db=15.3ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:48:30Z", "online", "status", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:15.858] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405293, itemkey: "status", value: "online", timestamp: "2026-07-13T16:48:30Z", message: "Terminal status update", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:15.858] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:45:15.858] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:48:30Z", "value" => "55"} [2026-07-13 08:45:15.882] [DEBUG] QUERY OK db=23.1ms idle=16.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:48:30Z", "55", "battery", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:15.882] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405294, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:48:30Z", message: "Battery level", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:15.882] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:48:30Z", "value" => "online"} [2026-07-13 08:45:15.913] [DEBUG] QUERY OK db=30.1ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:48:30Z", "online", "network", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:15.913] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405295, itemkey: "network", value: "online", timestamp: "2026-07-13T16:48:30Z", message: "Network connectivity", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:15.913] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:45:15.913] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:48:30Z", "value" => "0"} [2026-07-13 08:45:15.935] [DEBUG] QUERY OK db=21.0ms idle=31.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:48:30Z", "0", "cpu", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:15.935] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405296, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:48:30Z", message: "CPU usage percentage", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:15.935] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:48:30Z", "value" => "1.0.0"} [2026-07-13 08:45:15.949] [DEBUG] QUERY OK db=13.4ms queue=0.1ms idle=22.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:48:30Z", "1.0.0", "parameter_config", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:15.949] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405297, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:48:30Z", message: "Current parameters version", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:15.949] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:48:30Z", "value" => "1.0.1"} [2026-07-13 08:45:15.963] [DEBUG] QUERY OK db=13.7ms idle=15.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:48:30Z", "1.0.1", "emv_config", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:15.964] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405298, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:48:30Z", message: "Current EMV config version", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:15.964] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:48:30Z", "value" => ""} [2026-07-13 08:45:16.030] [DEBUG] QUERY OK db=24.8ms queue=41.2ms idle=15.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:48:30Z", "keys_config", 47107, ~N[2026-07-13 08:45:15], ~N[2026-07-13 08:45:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:16.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405299, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:48:30Z", message: "Current keys config version", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:15], updated_at: ~N[2026-07-13 08:45:15]}} [2026-07-13 08:45:16.031] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:48:30Z", "value" => ""} [2026-07-13 08:45:16.099] [DEBUG] QUERY OK db=25.1ms queue=42.3ms idle=67.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:48:30Z", "application", 47107, ~N[2026-07-13 08:45:16], ~N[2026-07-13 08:45:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:16.099] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405300, itemkey: "application", value: nil, timestamp: "2026-07-13T16:48:30Z", message: "Current application version", status_log_id: 47107, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:16], updated_at: ~N[2026-07-13 08:45:16]}} [2026-07-13 08:45:16.099] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:48:30Z"} [2026-07-13 08:45:16.099] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:48:30Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 2, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :up, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{"phoenix_client_piyush" => true}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:45:16.688] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:45:16.688] [INFO ] Incoming JSON payload: {"oid":"c520c2b6-3e4d-4638-873a-ec9125f6cee6","sn":"98251226730001","uploadTime":"2026-07-13T16:48:31Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"ram_free_mb","value":"944","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:48:31Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:45:16.689] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "c520c2b6-3e4d-4638-873a-ec9125f6cee6", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:48:31Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:48:31Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:48:31Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:48:31Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:48:31Z", "value" => "944"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:48:31Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:48:31Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:48:31Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:48:31Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:48:31Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:48:31Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:48:31Z", "vendor" => "morefun"} [2026-07-13 08:45:16.690] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:45:16.690] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:45:16.690] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:45:16.692] [DEBUG] QUERY OK source="parameter_templates" db=2.2ms idle=591.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:45:16.693] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=286.6ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:45:16.693] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:45:16.694] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:45:16.761] [DEBUG] QUERY OK source="tms_terminals" db=25.6ms queue=41.1ms idle=1.1ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:45:16], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:45:16.761] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:45:16.761] [INFO ] Event published: terminal_updated [2026-07-13 08:45:16.762] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:45:16.762] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:45:16.762] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:45:16.762] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms idle=67.6ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:45:16], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:45:16.763] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=1.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:45:16.764] [DEBUG] QUERY OK source="terminal_group_rules" db=0.7ms idle=0.1ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:45:16.764] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:45:16.821] [DEBUG] QUERY OK source="tms_terminals" db=17.5ms queue=40.8ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:45:16], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:45:16.821] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:45:16.822] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=57.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:45:16.895] [DEBUG] QUERY OK source="tms_terminals" db=29.9ms queue=42.3ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:45:16], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:45:16.918] [DEBUG] QUERY OK db=23.0ms idle=72.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "c520c2b6-3e4d-4638-873a-ec9125f6cee6", "2026-07-13T16:48:31Z", ~N[2026-07-13 08:45:16], ~N[2026-07-13 08:45:16]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:45:16.919] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47108, oid: "c520c2b6-3e4d-4638-873a-ec9125f6cee6", upload_time: "2026-07-13T16:48:31Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:16], updated_at: ~N[2026-07-13 08:45:16]} [2026-07-13 08:45:16.919] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:48:31Z", "value" => "morefun"} [2026-07-13 08:45:16.975] [DEBUG] QUERY OK db=14.5ms queue=41.5ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "morefun", "vendor", 47108, ~N[2026-07-13 08:45:16], ~N[2026-07-13 08:45:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:16.975] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405301, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:16], updated_at: ~N[2026-07-13 08:45:16]}} [2026-07-13 08:45:16.975] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:48:31Z", "value" => "kiosk_launcher"} [2026-07-13 08:45:17.040] [DEBUG] QUERY OK db=22.8ms queue=40.9ms idle=57.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "kiosk_launcher", "model", 47108, ~N[2026-07-13 08:45:16], ~N[2026-07-13 08:45:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.040] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405302, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:16], updated_at: ~N[2026-07-13 08:45:16]}} [2026-07-13 08:45:17.040] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:48:31Z", "value" => "1.0"} [2026-07-13 08:45:17.064] [DEBUG] QUERY OK db=23.2ms idle=65.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "1.0", "app_version", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.064] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405303, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.064] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:48:31Z", "value" => "13"} [2026-07-13 08:45:17.094] [DEBUG] QUERY OK db=29.3ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "13", "android_version", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.094] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405304, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.094] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:48:31Z", "value" => "944"} [2026-07-13 08:45:17.108] [DEBUG] QUERY OK db=14.0ms idle=30.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "944", "ram_free_mb", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.109] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405305, itemkey: "ram_free_mb", value: "944", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.109] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:48:31Z", "value" => "WIFI"} [2026-07-13 08:45:17.129] [DEBUG] QUERY OK db=18.3ms idle=16.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "WIFI", "network_type", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.129] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405306, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.129] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:48:31Z", "value" => "true"} [2026-07-13 08:45:17.154] [DEBUG] QUERY OK db=24.9ms idle=20.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "true", "kiosk_active", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.155] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405307, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.155] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:48:31Z", "value" => ""} [2026-07-13 08:45:17.179] [DEBUG] QUERY OK db=23.5ms idle=26.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:48:31Z", "sim_operator", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405308, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.179] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"} [2026-07-13 08:45:17.204] [DEBUG] QUERY OK db=24.0ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "UNKNOWN", "sim_number", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.204] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405309, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.204] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"} [2026-07-13 08:45:17.223] [DEBUG] QUERY OK db=18.0ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "UNKNOWN", "sim_iccid", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.223] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405310, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.224] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"} [2026-07-13 08:45:17.245] [DEBUG] QUERY OK db=20.5ms idle=20.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "UNKNOWN", "sim_imsi", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.245] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405311, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.245] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"} [2026-07-13 08:45:17.269] [DEBUG] QUERY OK db=23.5ms idle=23.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "UNKNOWN", "sim_iccid2", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.269] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405312, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.269] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:48:31Z", "value" => "UNKNOWN"} [2026-07-13 08:45:17.301] [DEBUG] QUERY OK db=30.2ms queue=0.1ms idle=25.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "UNKNOWN", "sim_imsi2", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.301] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405313, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.301] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:48:31Z", "value" => "2"} [2026-07-13 08:45:17.314] [DEBUG] QUERY OK db=12.3ms idle=32.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "2", "data_usage_mb", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.314] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405314, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.314] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:48:31Z", "value" => "0"} [2026-07-13 08:45:17.326] [DEBUG] QUERY OK db=12.1ms idle=13.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "0", "mobile_data_mb", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.327] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405315, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:17.327] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:48:31Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:45:17.358] [DEBUG] QUERY OK db=30.6ms idle=13.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:48:31Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47108, ~N[2026-07-13 08:45:17], ~N[2026-07-13 08:45:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:45:17.359] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405316, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:48:31Z", message: nil, status_log_id: 47108, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:45:17], updated_at: ~N[2026-07-13 08:45:17]}} [2026-07-13 08:45:19.171] [INFO ] Running offline device check... [2026-07-13 08:45:19.172] [INFO ] Starting offline device check... [2026-07-13 08:45:19.173] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=760.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:45:19.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.1ms idle=697.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.189] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.203] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.216] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=9.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.220] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.220] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.221] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.4ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.241] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=19.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.243] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.246] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.247] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.260] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.8ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.262] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.263] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.276] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.277] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=13.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.285] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.289] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=10.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.291] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.297] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.298] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.299] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.301] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.304] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.306] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.307] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:45:19.308] [INFO ] Offline device check completed. Found 40 offline devices, updated 0 statuses. [2026-07-13 08:45:19.308] [INFO ] Offline device check completed successfully [2026-07-13 08:45:25.782] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:45:30.783] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:48:40Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:48:40Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:48:40Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:48:40Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:48:40Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:48:40Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:48:40Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:48:40Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:48:40Z","vendor":"MoreFun"} [2026-07-13 08:45:35.784] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:48:40Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:48:40Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:48:40Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:48:40Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:48:40Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:48:40Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:48:40Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:48:40Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:48:40Z", "vendor" => "MoreFun"} [2026-07-13 08:45:40.785] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:45:45.786] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:45:50.787] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:45:55.789] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.1ms idle=307.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:45:59.290] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: :ping State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: false, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :up, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: #Reference<0.3048584822.3137601537.132854>, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:46:04.292] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: {:EXIT, #PID<0.1877.0>, :ping_timeout} State: {:state, {:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}}}, :rest_for_one, {[Tortoise.Connection.Controller, Tortoise.Connection.Receiver, Tortoise.Connection.Inflight], %{Tortoise.Connection.Controller => {:child, #PID<0.1886.0>, Tortoise.Connection.Controller, {Tortoise.Connection.Controller, :start_link, [[client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Controller]}, Tortoise.Connection.Inflight => {:child, #PID<0.1879.0>, Tortoise.Connection.Inflight, {Tortoise.Connection.Inflight, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Inflight]}, Tortoise.Connection.Receiver => {:child, #PID<0.1880.0>, Tortoise.Connection.Receiver, {Tortoise.Connection.Receiver, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 500, :worker, [Tortoise.Connection.Receiver]}}}, :undefined, 3, 5, [-576453539], 0, :never, Tortoise.Connection.Supervisor, [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]} [2026-07-13 08:46:04.298] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) exited in: :gen_statem.call({:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Receiver, "phoenix_client_piyush"}}}, {:handle_socket, Tortoise.Transport.Tcp, #Port<0.55>}, :infinity) ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started (stdlib 5.2.3.2) gen.erl:597: :gen.do_for_proc/2 (stdlib 5.2.3.2) gen_statem.erl:923: :gen_statem.call/3 (tortoise 0.10.0) lib/tortoise/connection/receiver.ex:35: Tortoise.Connection.Receiver.handle_socket/2 (tortoise 0.10.0) lib/tortoise/connection.ex:657: Tortoise.Connection.init_connection/2 (tortoise 0.10.0) lib/tortoise/connection.ex:405: Tortoise.Connection.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: :connect State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: true, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :down, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: nil, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:46:09.304] [INFO ] Device phoenix_client_piyush connected [2026-07-13 08:46:16.912] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:46:16.913] [INFO ] Incoming JSON payload: {"oid":"038c4505-1baa-4da1-aea9-602cd98a4b28","sn":"98251226730001","uploadTime":"2026-07-13T16:49:31Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"ram_free_mb","value":"934","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:49:31Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:46:16.916] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "038c4505-1baa-4da1-aea9-602cd98a4b28", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:49:31Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:49:31Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:49:31Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:49:31Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:49:31Z", "value" => "934"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:49:31Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:49:31Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:49:31Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:49:31Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:49:31Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:49:31Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:49:31Z", "vendor" => "morefun"} [2026-07-13 08:46:16.916] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:46:16.916] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:46:16.916] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:46:16.918] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=436.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:46:16.919] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=311.9ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:46:16.919] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:46:16.922] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:46:16.923] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:46:16.992] [DEBUG] QUERY OK source="tms_terminals" db=26.9ms queue=41.4ms idle=4.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:46:16], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:46:16.992] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:46:16.994] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=70.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:46:17.012] [DEBUG] QUERY OK source="tms_terminals" db=16.3ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:46:16], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:46:17.045] [DEBUG] QUERY OK db=32.2ms queue=0.1ms idle=18.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "038c4505-1baa-4da1-aea9-602cd98a4b28", "2026-07-13T16:49:31Z", ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:46:17.045] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47109, oid: "038c4505-1baa-4da1-aea9-602cd98a4b28", upload_time: "2026-07-13T16:49:31Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]} [2026-07-13 08:46:17.045] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:49:31Z", "value" => "morefun"} [2026-07-13 08:46:17.069] [DEBUG] QUERY OK db=23.4ms idle=34.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "morefun", "vendor", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.069] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405317, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.069] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:49:31Z", "value" => "kiosk_launcher"} [2026-07-13 08:46:17.092] [DEBUG] QUERY OK db=22.5ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "kiosk_launcher", "model", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.092] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405318, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.092] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:49:31Z", "value" => "1.0"} [2026-07-13 08:46:17.112] [DEBUG] QUERY OK db=19.4ms idle=23.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "1.0", "app_version", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405319, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.113] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:49:31Z", "value" => "13"} [2026-07-13 08:46:17.150] [DEBUG] QUERY OK db=36.9ms idle=21.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "13", "android_version", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.151] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405320, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.151] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:49:31Z", "value" => "934"} [2026-07-13 08:46:17.178] [DEBUG] QUERY OK db=27.2ms queue=0.1ms idle=38.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "934", "ram_free_mb", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405321, itemkey: "ram_free_mb", value: "934", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.179] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:49:31Z", "value" => "WIFI"} [2026-07-13 08:46:17.190] [DEBUG] QUERY OK db=10.7ms idle=28.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "WIFI", "network_type", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.190] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405322, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.190] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:49:31Z", "value" => "true"} [2026-07-13 08:46:17.216] [DEBUG] QUERY OK db=25.7ms idle=12.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "true", "kiosk_active", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.216] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405323, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.217] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:49:31Z", "value" => ""} [2026-07-13 08:46:17.240] [DEBUG] QUERY OK db=22.9ms idle=27.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:49:31Z", "sim_operator", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.241] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405324, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.241] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"} [2026-07-13 08:46:17.264] [DEBUG] QUERY OK db=23.1ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "UNKNOWN", "sim_number", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.265] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405325, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.265] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"} [2026-07-13 08:46:17.286] [DEBUG] QUERY OK db=20.4ms idle=25.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "UNKNOWN", "sim_iccid", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.287] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405326, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.287] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"} [2026-07-13 08:46:17.306] [DEBUG] QUERY OK db=18.6ms idle=22.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "UNKNOWN", "sim_imsi", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.306] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405327, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.306] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"} [2026-07-13 08:46:17.335] [DEBUG] QUERY OK db=28.0ms idle=20.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "UNKNOWN", "sim_iccid2", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.335] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405328, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.336] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:49:31Z", "value" => "UNKNOWN"} [2026-07-13 08:46:17.370] [DEBUG] QUERY OK db=33.0ms idle=30.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "UNKNOWN", "sim_imsi2", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.370] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405329, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.370] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:49:31Z", "value" => "2"} [2026-07-13 08:46:17.381] [DEBUG] QUERY OK db=11.1ms idle=35.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "2", "data_usage_mb", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.382] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405330, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.382] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:49:31Z", "value" => "0"} [2026-07-13 08:46:17.393] [DEBUG] QUERY OK db=10.8ms idle=12.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "0", "mobile_data_mb", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.394] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405331, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:17.394] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:49:31Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:46:17.424] [DEBUG] QUERY OK db=28.9ms idle=12.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:49:31Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47109, ~N[2026-07-13 08:46:17], ~N[2026-07-13 08:46:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:17.425] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405332, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:49:31Z", message: nil, status_log_id: 47109, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:17], updated_at: ~N[2026-07-13 08:46:17]}} [2026-07-13 08:46:46.970] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:46:46.970] [INFO ] Incoming JSON payload: {"oid":"a844a124-84f3-4278-9952-6b1cf70613c6","sn":"98251226730001","uploadTime":"2026-07-13T16:50:01Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"ram_free_mb","value":"933","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:50:01Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:46:46.972] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "a844a124-84f3-4278-9952-6b1cf70613c6", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:50:01Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:50:01Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:50:01Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:50:01Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:50:01Z", "value" => "933"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:50:01Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:50:01Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:50:01Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:50:01Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:50:01Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:50:01Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:50:01Z", "vendor" => "morefun"} [2026-07-13 08:46:46.972] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:46:46.972] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:46:46.972] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:46:46.973] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1292.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:46:46.974] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=290.5ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:46:46.974] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:46:46.974] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=0.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:46:46.975] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:46:47.028] [DEBUG] QUERY OK source="tms_terminals" db=52.6ms idle=1.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:46:46], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:46:47.028] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:46:47.030] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=53.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:46:47.063] [DEBUG] QUERY OK source="tms_terminals" db=32.6ms idle=2.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:46:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:46:47.092] [DEBUG] QUERY OK db=28.1ms idle=34.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "a844a124-84f3-4278-9952-6b1cf70613c6", "2026-07-13T16:50:01Z", ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:46:47.092] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47110, oid: "a844a124-84f3-4278-9952-6b1cf70613c6", upload_time: "2026-07-13T16:50:01Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]} [2026-07-13 08:46:47.093] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:50:01Z", "value" => "morefun"} [2026-07-13 08:46:47.124] [DEBUG] QUERY OK db=31.1ms idle=29.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "morefun", "vendor", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.124] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405333, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.125] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:50:01Z", "value" => "kiosk_launcher"} [2026-07-13 08:46:47.160] [DEBUG] QUERY OK db=34.5ms idle=33.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "kiosk_launcher", "model", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405334, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.160] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:50:01Z", "value" => "1.0"} [2026-07-13 08:46:47.184] [DEBUG] QUERY OK db=23.0ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "1.0", "app_version", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.184] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405335, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.184] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:50:01Z", "value" => "13"} [2026-07-13 08:46:47.215] [DEBUG] QUERY OK db=29.8ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "13", "android_version", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.215] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405336, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.215] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:50:01Z", "value" => "933"} [2026-07-13 08:46:47.237] [DEBUG] QUERY OK db=20.7ms idle=32.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "933", "ram_free_mb", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.237] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405337, itemkey: "ram_free_mb", value: "933", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.237] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:50:01Z", "value" => "WIFI"} [2026-07-13 08:46:47.271] [DEBUG] QUERY OK db=33.5ms idle=22.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "WIFI", "network_type", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.271] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405338, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.271] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:50:01Z", "value" => "true"} [2026-07-13 08:46:47.295] [DEBUG] QUERY OK db=23.4ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "true", "kiosk_active", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.295] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405339, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.295] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:50:01Z", "value" => ""} [2026-07-13 08:46:47.320] [DEBUG] QUERY OK db=24.2ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:50:01Z", "sim_operator", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405340, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.320] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"} [2026-07-13 08:46:47.346] [DEBUG] QUERY OK db=25.0ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "UNKNOWN", "sim_number", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.346] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405341, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.346] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"} [2026-07-13 08:46:47.372] [DEBUG] QUERY OK db=24.9ms idle=26.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "UNKNOWN", "sim_iccid", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.372] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405342, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.372] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"} [2026-07-13 08:46:47.406] [DEBUG] QUERY OK db=31.9ms queue=1.3ms idle=26.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "UNKNOWN", "sim_imsi", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.406] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405343, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.407] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"} [2026-07-13 08:46:47.432] [DEBUG] QUERY OK db=25.0ms idle=35.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "UNKNOWN", "sim_iccid2", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.433] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405344, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.433] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:50:01Z", "value" => "UNKNOWN"} [2026-07-13 08:46:47.462] [DEBUG] QUERY OK db=28.9ms idle=27.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "UNKNOWN", "sim_imsi2", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.462] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405345, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.462] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:50:01Z", "value" => "2"} [2026-07-13 08:46:47.485] [DEBUG] QUERY OK db=21.7ms idle=30.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "2", "data_usage_mb", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.485] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405346, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.485] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:50:01Z", "value" => "0"} [2026-07-13 08:46:47.508] [DEBUG] QUERY OK db=23.0ms idle=23.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "0", "mobile_data_mb", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.509] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405347, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:46:47.509] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:50:01Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:46:47.544] [DEBUG] QUERY OK db=34.1ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:50:01Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47110, ~N[2026-07-13 08:46:47], ~N[2026-07-13 08:46:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:46:47.547] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405348, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:50:01Z", message: nil, status_log_id: 47110, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:46:47], updated_at: ~N[2026-07-13 08:46:47]}} [2026-07-13 08:48:01.519] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:48:01.519] [INFO ] Incoming JSON payload: {"oid":"12ac8ba2-4284-4724-8dfe-dea5e314ca95","sn":"98251226730001","uploadTime":"2026-07-13T16:51:16Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"ram_free_mb","value":"921","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:51:16Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:48:01.520] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "12ac8ba2-4284-4724-8dfe-dea5e314ca95", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:51:16Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:51:16Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:51:16Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:51:16Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:51:16Z", "value" => "921"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:51:16Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:51:16Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:51:16Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:51:16Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:51:16Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:51:16Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:51:16Z", "vendor" => "morefun"} [2026-07-13 08:48:01.521] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:48:01.521] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:48:01.521] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:48:01.533] [DEBUG] QUERY OK source="parameter_templates" db=9.4ms idle=611.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:48:01.536] [DEBUG] QUERY OK source="parameter_templates" db=2.5ms idle=42.1ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:48:01.536] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:48:01.537] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=3.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:48:01.537] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:48:01.644] [DEBUG] QUERY OK source="tms_terminals" db=106.5ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:48:01], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:48:01.644] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:48:01.645] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=107.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:48:01.687] [DEBUG] QUERY OK source="tms_terminals" db=41.0ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:48:01], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:48:01.717] [DEBUG] QUERY OK db=30.2ms idle=41.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "12ac8ba2-4284-4724-8dfe-dea5e314ca95", "2026-07-13T16:51:16Z", ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:48:01.718] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47111, oid: "12ac8ba2-4284-4724-8dfe-dea5e314ca95", upload_time: "2026-07-13T16:51:16Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]} [2026-07-13 08:48:01.718] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:51:16Z", "value" => "morefun"} [2026-07-13 08:48:01.735] [DEBUG] QUERY OK db=17.3ms idle=31.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "morefun", "vendor", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.736] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405349, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.736] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:51:16Z", "value" => "kiosk_launcher"} [2026-07-13 08:48:01.758] [DEBUG] QUERY OK db=21.8ms idle=18.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "kiosk_launcher", "model", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.758] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405350, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.758] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:51:16Z", "value" => "1.0"} [2026-07-13 08:48:01.783] [DEBUG] QUERY OK db=24.5ms idle=23.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "1.0", "app_version", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.784] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405351, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.785] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:51:16Z", "value" => "13"} [2026-07-13 08:48:01.822] [DEBUG] QUERY OK db=37.2ms queue=0.1ms idle=27.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "13", "android_version", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.823] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405352, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.823] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:51:16Z", "value" => "921"} [2026-07-13 08:48:01.847] [DEBUG] QUERY OK db=24.2ms idle=39.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "921", "ram_free_mb", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405353, itemkey: "ram_free_mb", value: "921", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.848] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:51:16Z", "value" => "WIFI"} [2026-07-13 08:48:01.861] [DEBUG] QUERY OK db=13.0ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "WIFI", "network_type", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.861] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405354, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.861] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:51:16Z", "value" => "true"} [2026-07-13 08:48:01.905] [DEBUG] QUERY OK db=43.5ms idle=14.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "true", "kiosk_active", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.905] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405355, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.905] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:51:16Z", "value" => ""} [2026-07-13 08:48:01.943] [DEBUG] QUERY OK db=37.1ms idle=44.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:51:16Z", "sim_operator", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.944] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405356, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.944] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"} [2026-07-13 08:48:01.967] [DEBUG] QUERY OK db=22.3ms idle=25.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "UNKNOWN", "sim_number", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.969] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405357, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.969] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"} [2026-07-13 08:48:01.988] [DEBUG] QUERY OK db=18.8ms idle=26.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "UNKNOWN", "sim_iccid", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:01.989] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405358, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:01.989] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"} [2026-07-13 08:48:02.020] [DEBUG] QUERY OK db=31.1ms idle=21.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "UNKNOWN", "sim_imsi", 47111, ~N[2026-07-13 08:48:01], ~N[2026-07-13 08:48:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:02.020] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405359, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:01], updated_at: ~N[2026-07-13 08:48:01]}} [2026-07-13 08:48:02.020] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"} [2026-07-13 08:48:02.056] [DEBUG] QUERY OK db=35.6ms idle=32.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "UNKNOWN", "sim_iccid2", 47111, ~N[2026-07-13 08:48:02], ~N[2026-07-13 08:48:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:02.057] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405360, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:02], updated_at: ~N[2026-07-13 08:48:02]}} [2026-07-13 08:48:02.057] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:51:16Z", "value" => "UNKNOWN"} [2026-07-13 08:48:02.084] [DEBUG] QUERY OK db=26.9ms idle=36.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "UNKNOWN", "sim_imsi2", 47111, ~N[2026-07-13 08:48:02], ~N[2026-07-13 08:48:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:02.084] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405361, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:02], updated_at: ~N[2026-07-13 08:48:02]}} [2026-07-13 08:48:02.084] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:51:16Z", "value" => "2"} [2026-07-13 08:48:02.104] [DEBUG] QUERY OK db=16.1ms idle=31.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "2", "data_usage_mb", 47111, ~N[2026-07-13 08:48:02], ~N[2026-07-13 08:48:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:02.105] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405362, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:02], updated_at: ~N[2026-07-13 08:48:02]}} [2026-07-13 08:48:02.105] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:51:16Z", "value" => "0"} [2026-07-13 08:48:02.141] [DEBUG] QUERY OK db=35.4ms idle=20.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "0", "mobile_data_mb", 47111, ~N[2026-07-13 08:48:02], ~N[2026-07-13 08:48:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:02.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405363, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:02], updated_at: ~N[2026-07-13 08:48:02]}} [2026-07-13 08:48:02.143] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:51:16Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:48:02.179] [DEBUG] QUERY OK db=35.2ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:16Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47111, ~N[2026-07-13 08:48:02], ~N[2026-07-13 08:48:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:02.181] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405364, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:51:16Z", message: nil, status_log_id: 47111, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:02], updated_at: ~N[2026-07-13 08:48:02]}} [2026-07-13 08:48:04.580] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:48:04.580] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:51:19Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:51:19Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:51:19Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:51:19Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:51:19Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:51:19Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:51:19Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:51:19Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:51:19Z","vendor":"MoreFun"} [2026-07-13 08:48:04.581] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:51:19Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:51:19Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:51:19Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:51:19Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:51:19Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:51:19Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:51:19Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:51:19Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:51:19Z", "vendor" => "MoreFun"} [2026-07-13 08:48:04.581] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:48:04.581] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:48:04.581] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:48:04.586] [DEBUG] QUERY OK source="parameter_templates" db=4.7ms idle=1088.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:48:04.587] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=652.7ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:48:04.589] [DEBUG] QUERY OK source="parameter_template_values" db=1.5ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:48:04.595] [DEBUG] QUERY OK source="parameter_definitions" db=2.0ms queue=3.2ms idle=2.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:48:04.601] [DEBUG] QUERY OK source="pos_terminal" db=3.6ms queue=0.1ms idle=8.2ms 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:165 [2026-07-13 08:48:04.635] [DEBUG] QUERY OK source="pos_merchant" db=33.7ms queue=0.1ms idle=6.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:48:04.637] [DEBUG] QUERY OK db=0.8ms queue=0.7ms idle=1157.4ms 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 ["490603880000000"] [2026-07-13 08:48:04.637] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:48:04.639] [DEBUG] QUERY OK source="pos_terminal_data" db=1.1ms idle=36.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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:48:04.640] [DEBUG] QUERY OK source="address" db=0.8ms queue=0.2ms idle=3.4ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:48:04.641] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:48:04.644] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:48:04.682] [DEBUG] QUERY OK db=35.9ms queue=0.2ms idle=6.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "287a68b5361643e09f0cc0b3e3ec98c59bf4e66e8b710a4710b5df7eabde3aeb", 16418, 915, ~U[2026-07-13 08:48:04Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:48:04], ~N[2026-07-13 08:48:04]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:48:04.682] [INFO ] AutoPushService: Created push log 33537 for MF919 params.zip [2026-07-13 08:48:04.682] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 16418, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:48:04.684] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:48:04.684] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:48:04.685] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=44.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:48:04.692] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:48:04.716] [DEBUG] QUERY OK db=22.5ms idle=11.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a27307a7596bef590e7931fee886494cbf86b293c5b012687e62aab689771173", 16514, 17947, ~U[2026-07-13 08:48:04Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:48:04], ~N[2026-07-13 08:48:04]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:48:04.716] [INFO ] AutoPushService: Created push log 33538 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:48:04.716] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 16514, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:48:04.717] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:48:04.717] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:48:04.718] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=31.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:48:04.718] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:48:04.721] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=4.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:48:04.722] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:48:04.723] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:48:04.723] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:48:04.723] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:48:04.723] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:48:04.724] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:48:04.724] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:48:04.725] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=2.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:48:04.797] [DEBUG] QUERY OK source="tms_terminals" db=30.4ms queue=41.3ms idle=1.9ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:48:04], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:48:04.797] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:48:04.798] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:48:04.798] [INFO ] Event published: terminal_updated [2026-07-13 08:48:04.798] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:48:04.799] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:48:04.802] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.7ms queue=2.4ms idle=73.6ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:48:04], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:48:04.804] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.2ms idle=1.1ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:48:04.805] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:48:04.805] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:48:04.875] [DEBUG] QUERY OK source="tms_terminals" db=29.4ms queue=42.4ms idle=5.7ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:48:04], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:48:04.879] [DEBUG] QUERY OK source="parameter_templates" db=3.7ms queue=0.1ms idle=70.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:48:04.881] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:48:04.881] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:48:04.883] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=2.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:48:04.938] [DEBUG] QUERY OK source="tms_terminals" db=12.6ms queue=41.9ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:48:04], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:48:04.951] [DEBUG] QUERY OK db=11.7ms idle=0.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:51:19Z", ~N[2026-07-13 08:48:04], ~N[2026-07-13 08:48:04]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:48:04.951] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47112, oid: "organization_id", upload_time: "2026-07-13T16:51:19Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:04], updated_at: ~N[2026-07-13 08:48:04]} [2026-07-13 08:48:04.951] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:51:19Z", "value" => "online"} [2026-07-13 08:48:04.980] [DEBUG] QUERY OK db=28.2ms idle=12.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:51:19Z", "online", "status", 47112, ~N[2026-07-13 08:48:04], ~N[2026-07-13 08:48:04]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:04.980] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405365, itemkey: "status", value: "online", timestamp: "2026-07-13T16:51:19Z", message: "Terminal status update", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:04], updated_at: ~N[2026-07-13 08:48:04]}} [2026-07-13 08:48:04.980] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:48:04.982] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:51:19Z", "value" => "55"} [2026-07-13 08:48:05.016] [DEBUG] QUERY OK db=33.7ms idle=31.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:51:19Z", "55", "battery", 47112, ~N[2026-07-13 08:48:04], ~N[2026-07-13 08:48:04]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.016] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405366, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:51:19Z", message: "Battery level", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:04], updated_at: ~N[2026-07-13 08:48:04]}} [2026-07-13 08:48:05.018] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:51:19Z", "value" => "online"} [2026-07-13 08:48:05.034] [DEBUG] QUERY OK db=15.1ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:51:19Z", "online", "network", 47112, ~N[2026-07-13 08:48:05], ~N[2026-07-13 08:48:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.034] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405367, itemkey: "network", value: "online", timestamp: "2026-07-13T16:51:19Z", message: "Network connectivity", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:05], updated_at: ~N[2026-07-13 08:48:05]}} [2026-07-13 08:48:05.035] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:48:05.035] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:51:19Z", "value" => "0"} [2026-07-13 08:48:05.052] [DEBUG] QUERY OK db=15.6ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:51:19Z", "0", "cpu", 47112, ~N[2026-07-13 08:48:05], ~N[2026-07-13 08:48:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405368, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:51:19Z", message: "CPU usage percentage", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:05], updated_at: ~N[2026-07-13 08:48:05]}} [2026-07-13 08:48:05.052] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:51:19Z", "value" => "1.0.0"} [2026-07-13 08:48:05.085] [DEBUG] QUERY OK db=31.4ms queue=0.1ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:51:19Z", "1.0.0", "parameter_config", 47112, ~N[2026-07-13 08:48:05], ~N[2026-07-13 08:48:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.085] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405369, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:51:19Z", message: "Current parameters version", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:05], updated_at: ~N[2026-07-13 08:48:05]}} [2026-07-13 08:48:05.086] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:51:19Z", "value" => "1.0.1"} [2026-07-13 08:48:05.110] [DEBUG] QUERY OK db=24.1ms idle=34.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:51:19Z", "1.0.1", "emv_config", 47112, ~N[2026-07-13 08:48:05], ~N[2026-07-13 08:48:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.110] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405370, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:51:19Z", message: "Current EMV config version", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:05], updated_at: ~N[2026-07-13 08:48:05]}} [2026-07-13 08:48:05.110] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:51:19Z", "value" => ""} [2026-07-13 08:48:05.166] [DEBUG] QUERY OK db=13.6ms queue=41.4ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:51:19Z", "keys_config", 47112, ~N[2026-07-13 08:48:05], ~N[2026-07-13 08:48:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.166] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405371, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:51:19Z", message: "Current keys config version", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:05], updated_at: ~N[2026-07-13 08:48:05]}} [2026-07-13 08:48:05.166] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:51:19Z", "value" => ""} [2026-07-13 08:48:05.219] [DEBUG] QUERY OK db=11.6ms queue=40.7ms idle=56.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:51:19Z", "application", 47112, ~N[2026-07-13 08:48:05], ~N[2026-07-13 08:48:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:05.219] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405372, itemkey: "application", value: nil, timestamp: "2026-07-13T16:51:19Z", message: "Current application version", status_log_id: 47112, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:05], updated_at: ~N[2026-07-13 08:48:05]}} [2026-07-13 08:48:05.220] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:51:19Z"} [2026-07-13 08:48:05.220] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:51:19Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 5, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :up, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{"phoenix_client_piyush" => true}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:48:25.035] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:51:19Z"} [2026-07-13 08:48:30.036] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:51:19Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<58, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 6, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:48:51.889] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:48:51.890] [INFO ] Incoming JSON payload: {"oid":"6968ce74-a6f9-419b-9272-b82cb167fadd","sn":"98251226730001","uploadTime":"2026-07-13T16:51:46Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"ram_free_mb","value":"881","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:51:46Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:48:51.891] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "6968ce74-a6f9-419b-9272-b82cb167fadd", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:51:46Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:51:46Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:51:46Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:51:46Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:51:46Z", "value" => "881"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:51:46Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:51:46Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:51:46Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:51:46Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:51:46Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:51:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:51:46Z", "vendor" => "morefun"} [2026-07-13 08:48:51.891] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:48:51.891] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:48:51.891] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:48:51.892] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=1399.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:48:51.893] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=810.0ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:48:51.894] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:48:51.895] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=2.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:48:51.978] [DEBUG] QUERY OK source="tms_terminals" db=41.8ms queue=41.1ms idle=2.6ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:48:51], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:48:51.978] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:48:51.979] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:48:51.979] [INFO ] Event published: terminal_updated [2026-07-13 08:48:51.979] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:48:51.979] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:48:51.980] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.6ms idle=83.9ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:48:51], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:48:51.980] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:48:51.981] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:48:51.981] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:48:52.037] [DEBUG] QUERY OK source="tms_terminals" db=14.5ms queue=42.7ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:48:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:48:52.037] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:48:52.038] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=56.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:48:52.098] [DEBUG] QUERY OK source="tms_terminals" db=18.2ms queue=41.3ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:48:52], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:48:52.119] [DEBUG] QUERY OK db=20.4ms idle=14.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "6968ce74-a6f9-419b-9272-b82cb167fadd", "2026-07-13T16:51:46Z", ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:48:52.120] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47113, oid: "6968ce74-a6f9-419b-9272-b82cb167fadd", upload_time: "2026-07-13T16:51:46Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]} [2026-07-13 08:48:52.120] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:51:46Z", "value" => "morefun"} [2026-07-13 08:48:52.184] [DEBUG] QUERY OK db=22.6ms queue=41.2ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "morefun", "vendor", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.184] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405373, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.184] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:51:46Z", "value" => "kiosk_launcher"} [2026-07-13 08:48:52.237] [DEBUG] QUERY OK db=10.8ms queue=41.6ms idle=65.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "kiosk_launcher", "model", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.238] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405374, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.238] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:51:46Z", "value" => "1.0"} [2026-07-13 08:48:52.250] [DEBUG] QUERY OK db=12.4ms idle=53.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "1.0", "app_version", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.251] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405375, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.251] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:51:46Z", "value" => "13"} [2026-07-13 08:48:52.283] [DEBUG] QUERY OK db=31.9ms idle=13.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "13", "android_version", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.283] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405376, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.283] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:51:46Z", "value" => "881"} [2026-07-13 08:48:52.312] [DEBUG] QUERY OK db=28.4ms idle=33.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "881", "ram_free_mb", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.313] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405377, itemkey: "ram_free_mb", value: "881", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.313] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:51:46Z", "value" => "WIFI"} [2026-07-13 08:48:52.331] [DEBUG] QUERY OK db=18.1ms idle=29.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "WIFI", "network_type", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.331] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405378, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.331] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:51:46Z", "value" => "true"} [2026-07-13 08:48:52.346] [DEBUG] QUERY OK db=13.9ms idle=19.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "true", "kiosk_active", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.346] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405379, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.346] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:51:46Z", "value" => ""} [2026-07-13 08:48:52.369] [DEBUG] QUERY OK db=22.7ms idle=15.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:51:46Z", "sim_operator", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.369] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405380, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.369] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"} [2026-07-13 08:48:52.394] [DEBUG] QUERY OK db=24.5ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "UNKNOWN", "sim_number", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.395] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405381, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.395] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"} [2026-07-13 08:48:52.417] [DEBUG] QUERY OK db=22.0ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "UNKNOWN", "sim_iccid", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.417] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405382, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.418] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"} [2026-07-13 08:48:52.431] [DEBUG] QUERY OK db=12.9ms idle=23.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "UNKNOWN", "sim_imsi", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.431] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405383, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.431] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"} [2026-07-13 08:48:52.450] [DEBUG] QUERY OK db=18.1ms idle=14.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "UNKNOWN", "sim_iccid2", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.450] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405384, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.451] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:51:46Z", "value" => "UNKNOWN"} [2026-07-13 08:48:52.480] [DEBUG] QUERY OK db=28.7ms idle=20.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "UNKNOWN", "sim_imsi2", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.480] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405385, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.480] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:51:46Z", "value" => "2"} [2026-07-13 08:48:52.504] [DEBUG] QUERY OK db=22.8ms idle=31.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "2", "data_usage_mb", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.504] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405386, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.505] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:51:46Z", "value" => "0"} [2026-07-13 08:48:52.525] [DEBUG] QUERY OK db=19.8ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "0", "mobile_data_mb", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.525] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405387, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:48:52.526] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:51:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:48:52.540] [DEBUG] QUERY OK db=13.4ms idle=22.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:51:46Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47113, ~N[2026-07-13 08:48:52], ~N[2026-07-13 08:48:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:48:52.541] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405388, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:51:46Z", message: nil, status_log_id: 47113, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:48:52], updated_at: ~N[2026-07-13 08:48:52]}} [2026-07-13 08:49:02.003] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:49:07.005] [INFO ] Incoming JSON payload: {"oid":"540c0778-08fb-423a-a0ff-3cdbcd8a30b4","sn":"98251226730001","uploadTime":"2026-07-13T16:52:16Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"ram_free_mb","value":"877","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:52:16Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:49:11.896] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "540c0778-08fb-423a-a0ff-3cdbcd8a30b4", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:52:16Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:52:16Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:52:16Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:52:16Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:52:16Z", "value" => "877"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:52:16Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:52:16Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:52:16Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:52:16Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:52:16Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:52:16Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:52:16Z", "vendor" => "morefun"} [2026-07-13 08:49:11.896] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:49:11.896] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:49:11.896] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:49:11.897] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=1389.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:49:11.898] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.1ms idle=743.9ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:49:11.898] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:49:11.900] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.8ms idle=1.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:49:11.900] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:49:11.926] [DEBUG] QUERY OK source="tms_terminals" db=26.3ms idle=2.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:49:11], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:49:11.927] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:49:11.928] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=27.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:49:11.951] [DEBUG] QUERY OK source="tms_terminals" db=22.3ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:49:11], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:49:11.965] [DEBUG] QUERY OK db=14.1ms idle=22.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "540c0778-08fb-423a-a0ff-3cdbcd8a30b4", "2026-07-13T16:52:16Z", ~N[2026-07-13 08:49:11], ~N[2026-07-13 08:49:11]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:49:11.965] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47114, oid: "540c0778-08fb-423a-a0ff-3cdbcd8a30b4", upload_time: "2026-07-13T16:52:16Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:11], updated_at: ~N[2026-07-13 08:49:11]} [2026-07-13 08:49:11.965] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:52:16Z", "value" => "morefun"} [2026-07-13 08:49:11.986] [DEBUG] QUERY OK db=19.7ms idle=15.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "morefun", "vendor", 47114, ~N[2026-07-13 08:49:11], ~N[2026-07-13 08:49:11]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:11.986] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405389, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:11], updated_at: ~N[2026-07-13 08:49:11]}} [2026-07-13 08:49:11.986] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:52:16Z", "value" => "kiosk_launcher"} [2026-07-13 08:49:12.020] [DEBUG] QUERY OK db=32.3ms idle=22.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "kiosk_launcher", "model", 47114, ~N[2026-07-13 08:49:11], ~N[2026-07-13 08:49:11]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.020] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405390, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:11], updated_at: ~N[2026-07-13 08:49:11]}} [2026-07-13 08:49:12.020] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:52:16Z", "value" => "1.0"} [2026-07-13 08:49:12.043] [DEBUG] QUERY OK db=22.7ms queue=0.1ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "1.0", "app_version", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.044] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405391, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.044] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:52:16Z", "value" => "13"} [2026-07-13 08:49:12.063] [DEBUG] QUERY OK db=18.4ms idle=24.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "13", "android_version", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405392, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.063] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:52:16Z", "value" => "877"} [2026-07-13 08:49:12.076] [DEBUG] QUERY OK db=12.8ms idle=20.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "877", "ram_free_mb", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.076] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405393, itemkey: "ram_free_mb", value: "877", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.077] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:52:16Z", "value" => "WIFI"} [2026-07-13 08:49:12.097] [DEBUG] QUERY OK db=20.3ms idle=14.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "WIFI", "network_type", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.097] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405394, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.098] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:52:16Z", "value" => "true"} [2026-07-13 08:49:12.132] [DEBUG] QUERY OK db=32.7ms queue=0.9ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "true", "kiosk_active", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.132] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405395, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.132] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:52:16Z", "value" => ""} [2026-07-13 08:49:12.156] [DEBUG] QUERY OK db=23.8ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:52:16Z", "sim_operator", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.157] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405396, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.157] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"} [2026-07-13 08:49:12.176] [DEBUG] QUERY OK db=16.5ms idle=3.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "UNKNOWN", "sim_number", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.176] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405397, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.176] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"} [2026-07-13 08:49:12.203] [DEBUG] QUERY OK db=25.9ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "UNKNOWN", "sim_iccid", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.203] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405398, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.203] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"} [2026-07-13 08:49:12.226] [DEBUG] QUERY OK db=22.6ms idle=27.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "UNKNOWN", "sim_imsi", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.226] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405399, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.226] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"} [2026-07-13 08:49:12.247] [DEBUG] QUERY OK db=19.8ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "UNKNOWN", "sim_iccid2", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.248] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405400, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.248] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:52:16Z", "value" => "UNKNOWN"} [2026-07-13 08:49:12.261] [DEBUG] QUERY OK db=12.4ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "UNKNOWN", "sim_imsi2", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.261] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405401, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.261] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:52:16Z", "value" => "2"} [2026-07-13 08:49:12.275] [DEBUG] QUERY OK db=12.1ms idle=15.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "2", "data_usage_mb", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.275] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405402, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.275] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:52:16Z", "value" => "0"} [2026-07-13 08:49:12.303] [DEBUG] QUERY OK db=27.3ms idle=14.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "0", "mobile_data_mb", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.303] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405403, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.304] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:52:16Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:49:12.338] [DEBUG] QUERY OK db=33.0ms idle=29.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:16Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47114, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.338] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405404, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:52:16Z", message: nil, status_log_id: 47114, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.432] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:49:12.432] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:52:27Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:52:27Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:52:27Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:52:27Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:52:27Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:52:27Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:52:27Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:52:27Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:52:27Z","vendor":"MoreFun"} [2026-07-13 08:49:12.432] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:52:27Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:52:27Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:52:27Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:52:27Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:52:27Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:52:27Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:52:27Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:52:27Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:52:27Z", "vendor" => "MoreFun"} [2026-07-13 08:49:12.432] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:49:12.432] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:49:12.433] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:49:12.434] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=130.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:49:12.436] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.2ms idle=97.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:49:12.437] [DEBUG] QUERY OK source="parameter_template_values" db=1.2ms idle=1.7ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:49:12.440] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=1.0ms idle=2.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:49:12.441] [DEBUG] QUERY OK source="pos_terminal" db=0.7ms idle=2.8ms 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:165 [2026-07-13 08:49:12.480] [DEBUG] QUERY OK source="pos_merchant" db=39.2ms queue=0.1ms idle=1.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:49:12.482] [DEBUG] QUERY OK db=0.7ms queue=0.5ms idle=3.7ms 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 ["490603880000000"] [2026-07-13 08:49:12.482] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:49:12.483] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms idle=41.5ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:49:12.483] [DEBUG] QUERY OK source="address" db=0.2ms idle=2.5ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:49:12.483] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:49:12.484] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:49:12.500] [DEBUG] QUERY OK db=15.0ms queue=0.1ms idle=2.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a76ec3392764135c040b5316c26cbcbc83430bab0b2798489d13d74a1701bf70", 4451, 915, ~U[2026-07-13 08:49:12Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:49:12.501] [INFO ] AutoPushService: Created push log 33539 for MF919 params.zip [2026-07-13 08:49:12.501] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4451, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:49:12.501] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:49:12.501] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:49:12.504] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=18.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:49:12.510] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:49:12.528] [DEBUG] QUERY OK db=16.4ms idle=10.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "cb28a1095943f7cbc60046ba2b42dcb701a5defb6d1605be269f9b37f8bcb5d2", 16930, 17947, ~U[2026-07-13 08:49:12Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:49:12.528] [INFO ] AutoPushService: Created push log 33540 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:49:12.528] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 16930, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:49:12.528] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:49:12.528] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:49:12.529] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=24.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:49:12.530] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:49:12.531] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.3ms idle=2.3ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:49:12.531] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:49:12.532] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:49:12.532] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:49:12.535] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:49:12.536] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=5.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:49:12.537] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:49:12.537] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:49:12.538] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=6.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:49:12.604] [DEBUG] QUERY OK source="tms_terminals" db=24.3ms queue=40.8ms idle=2.4ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:49:12], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:49:12.604] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:49:12.604] [INFO ] Event published: terminal_updated [2026-07-13 08:49:12.605] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:49:12.605] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:49:12.605] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:49:12.606] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.2ms queue=0.2ms idle=66.3ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:49:12], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:49:12.607] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.2ms idle=2.7ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:49:12.608] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.1ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:49:12.608] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:49:12.660] [DEBUG] QUERY OK source="tms_terminals" db=12.8ms queue=40.8ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:49:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:49:12.661] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=52.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:49:12.664] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:49:12.664] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:49:12.664] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.1ms idle=2.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:49:12.721] [DEBUG] QUERY OK source="tms_terminals" db=15.2ms queue=40.6ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:49:12], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:49:12.745] [DEBUG] QUERY OK db=24.1ms queue=0.1ms idle=56.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:52:27Z", ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:49:12.745] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47115, oid: "organization_id", upload_time: "2026-07-13T16:52:27Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]} [2026-07-13 08:49:12.746] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:52:27Z", "value" => "online"} [2026-07-13 08:49:12.781] [DEBUG] QUERY OK db=35.3ms idle=25.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:52:27Z", "online", "status", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.782] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405405, itemkey: "status", value: "online", timestamp: "2026-07-13T16:52:27Z", message: "Terminal status update", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.782] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:49:12.782] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:52:27Z", "value" => "55"} [2026-07-13 08:49:12.799] [DEBUG] QUERY OK db=15.9ms idle=37.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:52:27Z", "55", "battery", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.800] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405406, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:52:27Z", message: "Battery level", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.800] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:52:27Z", "value" => "online"} [2026-07-13 08:49:12.820] [DEBUG] QUERY OK db=19.2ms idle=19.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:52:27Z", "online", "network", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.820] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405407, itemkey: "network", value: "online", timestamp: "2026-07-13T16:52:27Z", message: "Network connectivity", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.820] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:49:12.820] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:52:27Z", "value" => "0"} [2026-07-13 08:49:12.846] [DEBUG] QUERY OK db=24.7ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:52:27Z", "0", "cpu", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.846] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405408, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:52:27Z", message: "CPU usage percentage", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.846] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:52:27Z", "value" => "1.0.0"} [2026-07-13 08:49:12.878] [DEBUG] QUERY OK db=31.3ms idle=26.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:52:27Z", "1.0.0", "parameter_config", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.878] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405409, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:52:27Z", message: "Current parameters version", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.878] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:52:27Z", "value" => "1.0.1"} [2026-07-13 08:49:12.896] [DEBUG] QUERY OK db=17.4ms idle=32.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:52:27Z", "1.0.1", "emv_config", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.896] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405410, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:52:27Z", message: "Current EMV config version", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.896] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:52:27Z", "value" => ""} [2026-07-13 08:49:12.964] [DEBUG] QUERY OK db=23.8ms queue=43.2ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:52:27Z", "keys_config", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:12.964] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405411, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:52:27Z", message: "Current keys config version", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:12.964] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:52:27Z", "value" => ""} [2026-07-13 08:49:13.031] [DEBUG] QUERY OK db=25.2ms queue=40.9ms idle=68.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:52:27Z", "application", 47115, ~N[2026-07-13 08:49:12], ~N[2026-07-13 08:49:12]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:13.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405412, itemkey: "application", value: nil, timestamp: "2026-07-13T16:52:27Z", message: "Current application version", status_log_id: 47115, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:12], updated_at: ~N[2026-07-13 08:49:12]}} [2026-07-13 08:49:13.031] [WARN ] Unexpected async result [2026-07-13 08:49:13.031] [WARN ] Unexpected async result [2026-07-13 08:49:13.622] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:52:28Z"} [2026-07-13 08:49:13.623] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:52:28Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 10, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:49:13.776] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_L3_CONFIG","timestamp":"2026-07-13T16:52:28Z"} [2026-07-13 08:49:13.776] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_L3_CONFIG", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:52:28Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 156, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 11, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:49:32.085] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:49:37.087] [INFO ] Incoming JSON payload: {"oid":"e3d3383d-ec95-4d02-990f-083867213e31","sn":"98251226730001","uploadTime":"2026-07-13T16:52:46Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"ram_free_mb","value":"892","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:52:46Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:49:42.089] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e3d3383d-ec95-4d02-990f-083867213e31", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:52:46Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:52:46Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:52:46Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:52:46Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:52:46Z", "value" => "892"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:52:46Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:52:46Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:52:46Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:52:46Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:52:46Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:52:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:52:46Z", "vendor" => "morefun"} [2026-07-13 08:49:47.090] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:49:47.090] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:49:47.090] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:49:47.091] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1599.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:49:47.091] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=834.5ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:49:47.091] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:49:47.092] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=0.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:49:47.160] [DEBUG] QUERY OK source="tms_terminals" db=26.4ms queue=41.1ms idle=0.9ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:49:47], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:49:47.160] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:49:47.160] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:49:47.160] [INFO ] Event published: terminal_updated [2026-07-13 08:49:47.160] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:49:47.161] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:49:47.161] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms queue=0.1ms idle=68.5ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:49:47], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:49:47.162] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=1.7ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:49:47.163] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:49:47.163] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:49:47.227] [DEBUG] QUERY OK source="tms_terminals" db=24.7ms queue=40.8ms idle=0.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:49:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:49:47.227] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:49:47.228] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=64.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:49:47.293] [DEBUG] QUERY OK source="tms_terminals" db=23.1ms queue=40.8ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:49:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:49:47.316] [DEBUG] QUERY OK db=22.7ms queue=0.1ms idle=34.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "e3d3383d-ec95-4d02-990f-083867213e31", "2026-07-13T16:52:46Z", ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:49:47.317] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47116, oid: "e3d3383d-ec95-4d02-990f-083867213e31", upload_time: "2026-07-13T16:52:46Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]} [2026-07-13 08:49:47.317] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:52:46Z", "value" => "morefun"} [2026-07-13 08:49:47.383] [DEBUG] QUERY OK db=23.6ms queue=41.7ms idle=25.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "morefun", "vendor", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.383] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405413, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.383] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:52:46Z", "value" => "kiosk_launcher"} [2026-07-13 08:49:47.450] [DEBUG] QUERY OK db=23.3ms queue=41.8ms idle=68.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "kiosk_launcher", "model", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.450] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405414, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.450] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:52:46Z", "value" => "1.0"} [2026-07-13 08:49:47.471] [DEBUG] QUERY OK db=20.6ms idle=67.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "1.0", "app_version", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.471] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405415, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.472] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:52:46Z", "value" => "13"} [2026-07-13 08:49:47.494] [DEBUG] QUERY OK db=22.2ms idle=22.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "13", "android_version", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.494] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405416, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.495] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:52:46Z", "value" => "892"} [2026-07-13 08:49:47.532] [DEBUG] QUERY OK db=37.5ms idle=23.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "892", "ram_free_mb", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.533] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405417, itemkey: "ram_free_mb", value: "892", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.533] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:52:46Z", "value" => "WIFI"} [2026-07-13 08:49:47.564] [DEBUG] QUERY OK db=29.8ms idle=39.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "WIFI", "network_type", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.566] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405418, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.566] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:52:46Z", "value" => "true"} [2026-07-13 08:49:47.587] [DEBUG] QUERY OK db=20.1ms idle=33.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "true", "kiosk_active", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.587] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405419, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.587] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:52:46Z", "value" => ""} [2026-07-13 08:49:47.622] [DEBUG] QUERY OK db=35.1ms idle=23.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:52:46Z", "sim_operator", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.623] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405420, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.623] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"} [2026-07-13 08:49:47.666] [DEBUG] QUERY OK db=42.7ms idle=36.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "UNKNOWN", "sim_number", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.666] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405421, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.666] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"} [2026-07-13 08:49:47.705] [DEBUG] QUERY OK db=38.5ms idle=44.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "UNKNOWN", "sim_iccid", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.706] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405422, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.706] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"} [2026-07-13 08:49:47.748] [DEBUG] QUERY OK db=41.7ms idle=40.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "UNKNOWN", "sim_imsi", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.749] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405423, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.749] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"} [2026-07-13 08:49:47.793] [DEBUG] QUERY OK db=43.4ms queue=0.4ms idle=43.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "UNKNOWN", "sim_iccid2", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.793] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405424, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.793] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:52:46Z", "value" => "UNKNOWN"} [2026-07-13 08:49:47.842] [DEBUG] QUERY OK db=48.3ms idle=45.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "UNKNOWN", "sim_imsi2", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.842] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405425, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.843] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:52:46Z", "value" => "2"} [2026-07-13 08:49:47.909] [DEBUG] QUERY OK db=66.2ms idle=49.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "2", "data_usage_mb", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.909] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405426, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.910] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:52:46Z", "value" => "0"} [2026-07-13 08:49:47.943] [DEBUG] QUERY OK db=32.8ms idle=67.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "0", "mobile_data_mb", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.943] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405427, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.944] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:52:46Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:49:47.971] [DEBUG] QUERY OK db=25.4ms queue=0.1ms idle=35.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:52:46Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47116, ~N[2026-07-13 08:49:47], ~N[2026-07-13 08:49:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:47.972] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405428, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:52:46Z", message: nil, status_log_id: 47116, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:47], updated_at: ~N[2026-07-13 08:49:47]}} [2026-07-13 08:49:47.972] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:49:47.972] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T16:52:55Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T16:52:55Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T16:52:55Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T16:52:55Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T16:52:55Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T16:52:55Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T16:52:55Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T16:52:55Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T16:52:55Z","vendor":"MoreFun"} [2026-07-13 08:49:47.972] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:52:55Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:52:55Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:52:55Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:52:55Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:52:55Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:52:55Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:52:55Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:52:55Z", "value" => ""}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:52:55Z", "vendor" => "MoreFun"} [2026-07-13 08:49:47.972] [INFO ] Extracted versions for 98251226730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 08:49:47.972] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:49:47.972] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 08:49:47.973] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=29.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:49:47.974] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.1ms idle=3.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 08:49:47.974] [DEBUG] QUERY OK source="parameter_template_values" db=0.4ms idle=0.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:49:47.978] [DEBUG] QUERY OK source="parameter_definitions" db=1.6ms queue=1.9ms idle=1.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 08:49:47.981] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=6.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:165 [2026-07-13 08:49:48.019] [DEBUG] QUERY OK source="pos_merchant" db=37.9ms idle=2.9ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 08:49:48.021] [DEBUG] QUERY OK db=0.6ms queue=0.5ms idle=1541.0ms 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 ["490603880000000"] [2026-07-13 08:49:48.021] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 08:49:48.022] [DEBUG] QUERY OK source="pos_terminal_data" db=0.3ms idle=40.4ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 08:49:48.023] [DEBUG] QUERY OK source="address" db=0.5ms idle=2.8ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 08:49:48.023] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 08:49:48.024] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 08:49:48.054] [DEBUG] QUERY OK db=28.6ms idle=2.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "e3996fd8db4ffc4ee74620ecaf57e81e2bc7bd549c1b6384abb55a4e1fe43d19", 4515, 915, ~U[2026-07-13 08:49:48Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 08:49:48.054] [INFO ] AutoPushService: Created push log 33541 for MF919 params.zip [2026-07-13 08:49:48.054] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4515, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 08:49:48.055] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:49:48.055] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 08:49:48.056] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.2ms idle=32.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 08:49:48.059] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 08:49:48.087] [DEBUG] QUERY OK db=27.3ms idle=6.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "2cfe04ca4ec161c2fa9c0adec13e277df27dad86918902ec39c4f50368124d2f", 4611, 17947, ~U[2026-07-13 08:49:48Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 08:49:48.087] [INFO ] AutoPushService: Created push log 33542 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 08:49:48.088] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 4611, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 08:49:48.088] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 08:49:48.088] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 08:49:48.089] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=32.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 08:49:48.089] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 08:49:48.091] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=2.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 08:49:48.091] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 08:49:48.093] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 08:49:48.093] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:49:48.094] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 08:49:48.095] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=5.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 08:49:48.096] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 08:49:48.097] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 08:49:48.098] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=5.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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:49:48.122] [DEBUG] QUERY OK source="tms_terminals" db=23.8ms queue=0.1ms idle=3.1ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 08:49:48], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:49:48.123] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:49:48.123] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:49:48.123] [INFO ] Event published: terminal_updated [2026-07-13 08:49:48.123] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:49:48.123] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:49:48.125] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.8ms idle=26.5ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:49:48], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:49:48.128] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.3ms idle=4.1ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:49:48.128] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms idle=0.3ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:49:48.129] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:49:48.191] [DEBUG] QUERY OK source="tms_terminals" db=23.7ms queue=40.9ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 08:49:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:49:48.192] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=63.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 08:49:48.193] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 08:49:48.193] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:49:48.195] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:49:48.261] [DEBUG] QUERY OK source="tms_terminals" db=24.5ms queue=41.7ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:49:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:49:48.293] [DEBUG] QUERY OK db=30.7ms idle=1.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T16:52:55Z", ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:49:48.293] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47117, oid: "organization_id", upload_time: "2026-07-13T16:52:55Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]} [2026-07-13 08:49:48.294] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T16:52:55Z", "value" => "online"} [2026-07-13 08:49:48.306] [DEBUG] QUERY OK db=11.4ms idle=31.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T16:52:55Z", "online", "status", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.306] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405429, itemkey: "status", value: "online", timestamp: "2026-07-13T16:52:55Z", message: "Terminal status update", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.306] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 08:49:48.306] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T16:52:55Z", "value" => "55"} [2026-07-13 08:49:48.342] [DEBUG] QUERY OK db=35.7ms idle=13.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T16:52:55Z", "55", "battery", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.343] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405430, itemkey: "battery", value: "55", timestamp: "2026-07-13T16:52:55Z", message: "Battery level", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.343] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T16:52:55Z", "value" => "online"} [2026-07-13 08:49:48.366] [DEBUG] QUERY OK db=22.7ms idle=37.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T16:52:55Z", "online", "network", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.366] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405431, itemkey: "network", value: "online", timestamp: "2026-07-13T16:52:55Z", message: "Network connectivity", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.366] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 08:49:48.366] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T16:52:55Z", "value" => "0"} [2026-07-13 08:49:48.391] [DEBUG] QUERY OK db=24.5ms idle=24.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T16:52:55Z", "0", "cpu", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.391] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405432, itemkey: "cpu", value: "0", timestamp: "2026-07-13T16:52:55Z", message: "CPU usage percentage", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.391] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T16:52:55Z", "value" => "1.0.0"} [2026-07-13 08:49:48.425] [DEBUG] QUERY OK db=33.3ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T16:52:55Z", "1.0.0", "parameter_config", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.426] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405433, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T16:52:55Z", message: "Current parameters version", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.426] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T16:52:55Z", "value" => "1.0.1"} [2026-07-13 08:49:48.480] [DEBUG] QUERY OK db=52.8ms idle=36.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T16:52:55Z", "1.0.1", "emv_config", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.481] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405434, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T16:52:55Z", message: "Current EMV config version", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.481] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T16:52:55Z", "value" => ""} [2026-07-13 08:49:48.543] [DEBUG] QUERY OK db=20.1ms queue=41.5ms idle=55.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T16:52:55Z", "keys_config", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.543] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405435, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T16:52:55Z", message: "Current keys config version", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.544] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T16:52:55Z", "value" => ""} [2026-07-13 08:49:48.573] [DEBUG] QUERY OK db=27.7ms queue=1.3ms idle=63.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-07-13T16:52:55Z", "application", 47117, ~N[2026-07-13 08:49:48], ~N[2026-07-13 08:49:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:49:48.573] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405436, itemkey: "application", value: nil, timestamp: "2026-07-13T16:52:55Z", message: "Current application version", status_log_id: 47117, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:49:48], updated_at: ~N[2026-07-13 08:49:48]}} [2026-07-13 08:49:48.574] [INFO ] Received OTA ACK from device 98251226730001: {"oid":"","sn":"98251226730001","status":"error","message":"Unknown command: UPDATE_PARAMS","timestamp":"2026-07-13T16:53:03Z"} [2026-07-13 08:49:48.574] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_piyush"}} terminating ** (CaseClauseError) no case clause matching: {:ok, %{"message" => "Unknown command: UPDATE_PARAMS", "oid" => "", "sn" => "98251226730001", "status" => "error", "timestamp" => "2026-07-13T16:53:03Z"}} (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:39: DaProductApp.MQTT.Handler.handle_message/3 (tortoise 0.10.0) lib/tortoise/handler.ex:348: Tortoise.Handler.execute/2 (tortoise 0.10.0) lib/tortoise/connection/controller.ex:254: Tortoise.Connection.Controller.handle_package/2 (stdlib 5.2.3.2) gen_server.erl:1121: :gen_server.try_handle_cast/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: {:"$gen_cast", {:incoming, <<50, 153, 1, 0, 22, 111, 116, 97, 47, 97, 99, 107, 47, 57, 56, 50, 53, 49, 50, 50, 54, 55, 51, 48, 48, 48, 49, 0, 14, 123, 34, 111, 105, 100, 34, 58, 34, 34, 44, 34, 115, 110, 34, 58, 34, 57, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_piyush", ping: {[], []}, status: :down, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:50:02.449] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:50:07.450] [INFO ] Incoming JSON payload: {"oid":"79bcf0a0-84fb-4771-83b7-42829921fc55","sn":"98251226730001","uploadTime":"2026-07-13T16:53:16Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"ram_free_mb","value":"899","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:53:16Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:50:12.453] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "79bcf0a0-84fb-4771-83b7-42829921fc55", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:53:16Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:53:16Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:53:16Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:53:16Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:53:16Z", "value" => "899"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:53:16Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:53:16Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:53:16Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:53:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:53:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:53:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:53:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:53:16Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:53:16Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:53:16Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:53:16Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:53:16Z", "vendor" => "morefun"} [2026-07-13 08:50:15.446] [INFO ] Starting scheduled rule validation [2026-07-13 08:50:17.342] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: :ping State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: false, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :up, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: #Reference<0.3048584822.3137601537.144982>, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:50:19.308] [INFO ] Running offline device check... [2026-07-13 08:50:20.447] [DEBUG] Validating missing assignments [2026-07-13 08:50:22.343] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}} terminating ** (stop) :ping_timeout Last message: {:EXIT, #PID<0.1889.0>, :ping_timeout} State: {:state, {:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Supervisor, "phoenix_client_piyush"}}}, :rest_for_one, {[Tortoise.Connection.Controller, Tortoise.Connection.Receiver, Tortoise.Connection.Inflight], %{Tortoise.Connection.Controller => {:child, #PID<0.1911.0>, Tortoise.Connection.Controller, {Tortoise.Connection.Controller, :start_link, [[client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Controller]}, Tortoise.Connection.Inflight => {:child, #PID<0.1891.0>, Tortoise.Connection.Inflight, {Tortoise.Connection.Inflight, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 5000, :worker, [Tortoise.Connection.Inflight]}, Tortoise.Connection.Receiver => {:child, #PID<0.1892.0>, Tortoise.Connection.Receiver, {Tortoise.Connection.Receiver, :start_link, [[client_id: "phoenix_client_piyush"]]}, :permanent, false, 500, :worker, [Tortoise.Connection.Receiver]}}}, :undefined, 3, 5, [-576453266], 0, :never, Tortoise.Connection.Supervisor, [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}]} [2026-07-13 08:50:22.426] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection, "phoenix_client_piyush"}} terminating ** (stop) exited in: :gen_statem.call({:via, Registry, {Tortoise.Registry, {Tortoise.Connection.Receiver, "phoenix_client_piyush"}}}, {:handle_socket, Tortoise.Transport.Tcp, #Port<0.60>}, :infinity) ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started (stdlib 5.2.3.2) gen.erl:597: :gen.do_for_proc/2 (stdlib 5.2.3.2) gen_statem.erl:923: :gen_statem.call/3 (tortoise 0.10.0) lib/tortoise/connection/receiver.ex:35: Tortoise.Connection.Receiver.handle_socket/2 (tortoise 0.10.0) lib/tortoise/connection.ex:657: Tortoise.Connection.init_connection/2 (tortoise 0.10.0) lib/tortoise/connection.ex:405: Tortoise.Connection.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 Last message: :connect State: %Tortoise.Connection{client_id: "phoenix_client_piyush", connect: %Tortoise.Package.Connect{__META__: %Tortoise.Package.Meta{opcode: 1, flags: 0}, protocol: "MQTT", protocol_version: 4, user_name: nil, password: nil, clean_session: true, keep_alive: 60, client_id: "phoenix_client_piyush", will: nil}, server: %Tortoise.Transport{type: Tortoise.Transport.Tcp, host: ~c"demo.ctrmv.com", port: 1883, opts: [:binary, {:packet, :raw}, {:active, false}]}, status: :down, backoff: %Tortoise.Connection.Backoff{min_interval: 100, max_interval: 30000, value: nil}, subscriptions: %Tortoise.Package.Subscribe{__META__: %Tortoise.Package.Meta{opcode: 8, flags: 2}, identifier: nil, topics: [{"ota/+/+/logpush", 1}, {"ota/ack/+", 1}, {"tms/status/+", 1}]}, keep_alive: nil, opts: [client_id: "phoenix_client_piyush", handler: {DaProductApp.MQTT.Handler, [client_id: "phoenix_client_piyush"]}], handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_piyush", online_devices: %{}}, initial_args: [client_id: "phoenix_client_piyush"]}} [2026-07-13 08:50:27.432] [INFO ] Device phoenix_client_piyush connected [2026-07-13 08:50:24.310] [INFO ] Starting offline device check... [2026-07-13 08:50:29.314] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms idle=918.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:50:29.320] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=824.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.328] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.329] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.331] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.337] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.341] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.350] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.354] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=8.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.356] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.357] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.358] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.448] [DEBUG] QUERY OK source="tms_terminals" db=30.7ms queue=40.8ms idle=18.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:50:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:50:29.448] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:50:29.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=53.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.452] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.454] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.466] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=11.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.467] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.474] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.478] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.479] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.480] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.484] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.485] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.486] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.487] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.488] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.493] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.494] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.495] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.496] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:50:29.496] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 08:50:29.496] [INFO ] Offline device check completed successfully [2026-07-13 08:50:25.449] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms queue=0.1ms idle=1067.4ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 08:50:30.452] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=954.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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 08:50:30.452] [DEBUG] Re-applied 0 rules during validation [2026-07-13 08:50:30.452] [DEBUG] Validating invalid assignments [2026-07-13 08:50:30.452] [DEBUG] Validating rule consistency [2026-07-13 08:50:30.452] [DEBUG] Updating group terminal counts [2026-07-13 08:50:30.453] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=54.8ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 08:50:30.453] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=1.3ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 08:50:30.454] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=0.7ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 08:50:30.455] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.7ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 08:50:30.457] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms idle=1.9ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 08:50:30.458] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=0.6ms idle=2.7ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 08:50:30.459] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms idle=2.1ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 08:50:30.460] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.7ms idle=0.8ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 08:50:30.460] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 08:50:30.460] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 08:50:32.561] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:50:37.562] [INFO ] Incoming JSON payload: {"oid":"b47d164e-ec0f-403e-9afa-f8be0fec9ec8","sn":"98251226730001","uploadTime":"2026-07-13T16:53:47Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"ram_free_mb","value":"899","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:53:47Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:50:42.563] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "b47d164e-ec0f-403e-9afa-f8be0fec9ec8", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:53:47Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:53:47Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:53:47Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:53:47Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:53:47Z", "value" => "899"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:53:47Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:53:47Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:53:47Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:53:47Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:53:47Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:53:47Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:53:47Z", "vendor" => "morefun"} [2026-07-13 08:50:42.564] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:50:42.564] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:50:42.564] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:50:42.565] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.1ms idle=124.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:50:42.565] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=72.9ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:50:42.565] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:50:42.566] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:50:42.624] [DEBUG] QUERY OK source="tms_terminals" db=14.5ms queue=42.5ms idle=1.4ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-07-13 08:50:42], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 08:50:42.624] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:50:42.624] [INFO ] Event published: terminal_updated [2026-07-13 08:50:42.624] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 08:50:42.624] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 08:50:42.625] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 08:50:42.626] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.2ms idle=58.1ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 08:50:42], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 08:50:42.627] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=2.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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 08:50:42.628] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.3ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 08:50:42.628] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 08:50:42.681] [DEBUG] QUERY OK source="tms_terminals" db=13.4ms queue=41.1ms idle=0.6ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "kiosk_launcher", "morefun", nil, nil, nil, ~N[2026-07-13 08:50:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:50:42.681] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:50:42.683] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=53.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:50:42.748] [DEBUG] QUERY OK source="tms_terminals" db=23.4ms queue=41.1ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:50:42], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:50:42.784] [DEBUG] QUERY OK db=34.6ms queue=0.4ms idle=66.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "b47d164e-ec0f-403e-9afa-f8be0fec9ec8", "2026-07-13T16:53:47Z", ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:50:42.784] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47118, oid: "b47d164e-ec0f-403e-9afa-f8be0fec9ec8", upload_time: "2026-07-13T16:53:47Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]} [2026-07-13 08:50:42.784] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:53:47Z", "value" => "morefun"} [2026-07-13 08:50:42.837] [DEBUG] QUERY OK db=11.3ms queue=40.7ms idle=36.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "morefun", "vendor", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:42.837] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405437, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:42.837] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:53:47Z", "value" => "kiosk_launcher"} [2026-07-13 08:50:42.903] [DEBUG] QUERY OK db=23.7ms queue=41.6ms idle=53.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "kiosk_launcher", "model", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:42.903] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405438, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:42.904] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:53:47Z", "value" => "1.0"} [2026-07-13 08:50:42.928] [DEBUG] QUERY OK db=23.6ms idle=67.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "1.0", "app_version", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:42.928] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405439, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:42.928] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:53:47Z", "value" => "13"} [2026-07-13 08:50:42.948] [DEBUG] QUERY OK db=19.2ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "13", "android_version", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:42.948] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405440, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:42.948] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:53:47Z", "value" => "899"} [2026-07-13 08:50:42.964] [DEBUG] QUERY OK db=15.5ms idle=21.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "899", "ram_free_mb", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:42.965] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405441, itemkey: "ram_free_mb", value: "899", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:42.965] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:53:47Z", "value" => "WIFI"} [2026-07-13 08:50:42.984] [DEBUG] QUERY OK db=18.7ms idle=17.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "WIFI", "network_type", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:42.984] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405442, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:42.984] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:53:47Z", "value" => "true"} [2026-07-13 08:50:43.008] [DEBUG] QUERY OK db=23.2ms idle=20.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "true", "kiosk_active", 47118, ~N[2026-07-13 08:50:42], ~N[2026-07-13 08:50:42]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.008] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405443, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:42], updated_at: ~N[2026-07-13 08:50:42]}} [2026-07-13 08:50:43.008] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:53:47Z", "value" => ""} [2026-07-13 08:50:43.035] [DEBUG] QUERY OK db=26.0ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:53:47Z", "sim_operator", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.035] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405444, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.035] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"} [2026-07-13 08:50:43.050] [DEBUG] QUERY OK db=14.2ms idle=27.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "UNKNOWN", "sim_number", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.050] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405445, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.050] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"} [2026-07-13 08:50:43.065] [DEBUG] QUERY OK db=14.5ms idle=15.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "UNKNOWN", "sim_iccid", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.065] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405446, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.065] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"} [2026-07-13 08:50:43.082] [DEBUG] QUERY OK db=16.3ms idle=15.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "UNKNOWN", "sim_imsi", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.082] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405447, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.082] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"} [2026-07-13 08:50:43.107] [DEBUG] QUERY OK db=24.1ms idle=17.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "UNKNOWN", "sim_iccid2", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.107] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405448, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.108] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:53:47Z", "value" => "UNKNOWN"} [2026-07-13 08:50:43.136] [DEBUG] QUERY OK db=27.6ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "UNKNOWN", "sim_imsi2", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.136] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405449, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.136] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:53:47Z", "value" => "2"} [2026-07-13 08:50:43.154] [DEBUG] QUERY OK db=17.6ms queue=0.1ms idle=29.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "2", "data_usage_mb", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.155] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405450, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.155] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:53:47Z", "value" => "0"} [2026-07-13 08:50:43.181] [DEBUG] QUERY OK db=25.1ms queue=0.5ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "0", "mobile_data_mb", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.181] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405451, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:50:43.181] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:53:47Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:50:43.207] [DEBUG] QUERY OK db=25.0ms idle=27.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:53:47Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47118, ~N[2026-07-13 08:50:43], ~N[2026-07-13 08:50:43]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:50:43.211] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405452, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:53:47Z", message: nil, status_log_id: 47118, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:50:43], updated_at: ~N[2026-07-13 08:50:43]}} [2026-07-13 08:51:02.941] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 08:51:02.941] [INFO ] Incoming JSON payload: {"oid":"27b144c2-d26d-4b10-9f43-3e30d5a93416","sn":"98251226730001","uploadTime":"2026-07-13T16:54:17Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"ram_free_mb","value":"897","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T16:54:17Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 08:51:02.943] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "27b144c2-d26d-4b10-9f43-3e30d5a93416", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:54:17Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T16:54:17Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:54:17Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:54:17Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:54:17Z", "value" => "897"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:54:17Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:54:17Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:54:17Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:54:17Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:54:17Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:54:17Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T16:54:17Z", "vendor" => "morefun"} [2026-07-13 08:51:02.944] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 08:51:02.944] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 08:51:02.945] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 08:51:02.948] [DEBUG] QUERY OK source="parameter_templates" db=2.8ms idle=1432.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 08:51:02.950] [DEBUG] QUERY OK source="parameter_templates" db=2.1ms idle=423.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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 08:51:02.950] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 08:51:02.951] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=2.7ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 08:51:02.951] [INFO ] Terminal updated: 98251226730001 [2026-07-13 08:51:02.984] [DEBUG] QUERY OK source="tms_terminals" db=32.0ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 08:51:02], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 08:51:02.984] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 08:51:02.985] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=32.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 08:51:03.011] [DEBUG] QUERY OK source="tms_terminals" db=24.9ms queue=0.3ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:51:02], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 08:51:03.030] [DEBUG] QUERY OK db=16.5ms queue=0.1ms idle=27.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "27b144c2-d26d-4b10-9f43-3e30d5a93416", "2026-07-13T16:54:17Z", ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 08:51:03.030] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47119, oid: "27b144c2-d26d-4b10-9f43-3e30d5a93416", upload_time: "2026-07-13T16:54:17Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]} [2026-07-13 08:51:03.030] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T16:54:17Z", "value" => "morefun"} [2026-07-13 08:51:03.063] [DEBUG] QUERY OK db=30.9ms queue=1.7ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "morefun", "vendor", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405453, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.063] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T16:54:17Z", "value" => "kiosk_launcher"} [2026-07-13 08:51:03.089] [DEBUG] QUERY OK db=25.3ms idle=34.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "kiosk_launcher", "model", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.091] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405454, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.091] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T16:54:17Z", "value" => "1.0"} [2026-07-13 08:51:03.125] [DEBUG] QUERY OK db=33.7ms idle=28.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "1.0", "app_version", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.125] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405455, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.125] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T16:54:17Z", "value" => "13"} [2026-07-13 08:51:03.143] [DEBUG] QUERY OK db=17.0ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "13", "android_version", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.143] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405456, itemkey: "android_version", value: "13", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.145] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T16:54:17Z", "value" => "897"} [2026-07-13 08:51:03.178] [DEBUG] QUERY OK db=32.3ms idle=20.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "897", "ram_free_mb", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.178] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405457, itemkey: "ram_free_mb", value: "897", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.178] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T16:54:17Z", "value" => "WIFI"} [2026-07-13 08:51:03.212] [DEBUG] QUERY OK db=33.4ms idle=36.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "WIFI", "network_type", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.212] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405458, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.213] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T16:54:17Z", "value" => "true"} [2026-07-13 08:51:03.246] [DEBUG] QUERY OK db=32.6ms idle=35.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "true", "kiosk_active", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.247] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405459, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.247] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T16:54:17Z", "value" => ""} [2026-07-13 08:51:03.266] [DEBUG] QUERY OK db=19.1ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T16:54:17Z", "sim_operator", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.266] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405460, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.266] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"} [2026-07-13 08:51:03.316] [DEBUG] QUERY OK db=49.0ms idle=20.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "UNKNOWN", "sim_number", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.316] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405461, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.316] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"} [2026-07-13 08:51:03.333] [DEBUG] QUERY OK db=16.2ms idle=50.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "UNKNOWN", "sim_iccid", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.333] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405462, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.333] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"} [2026-07-13 08:51:03.353] [DEBUG] QUERY OK db=19.5ms idle=17.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "UNKNOWN", "sim_imsi", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.354] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405463, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.355] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"} [2026-07-13 08:51:03.381] [DEBUG] QUERY OK db=25.8ms queue=0.1ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "UNKNOWN", "sim_iccid2", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.381] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405464, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.382] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T16:54:17Z", "value" => "UNKNOWN"} [2026-07-13 08:51:03.420] [DEBUG] QUERY OK db=38.1ms idle=28.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "UNKNOWN", "sim_imsi2", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.420] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405465, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.420] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T16:54:17Z", "value" => "2"} [2026-07-13 08:51:03.443] [DEBUG] QUERY OK db=22.4ms idle=39.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "2", "data_usage_mb", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.444] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405466, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.444] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T16:54:17Z", "value" => "0"} [2026-07-13 08:51:03.463] [DEBUG] QUERY OK db=18.8ms queue=0.1ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "0", "mobile_data_mb", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.463] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405467, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:51:03.466] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T16:54:17Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 08:51:03.497] [DEBUG] QUERY OK db=29.7ms idle=23.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T16:54:17Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47119, ~N[2026-07-13 08:51:03], ~N[2026-07-13 08:51:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 08:51:03.499] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405468, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T16:54:17Z", message: nil, status_log_id: 47119, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 08:51:03], updated_at: ~N[2026-07-13 08:51:03]}} [2026-07-13 08:55:29.497] [INFO ] Running offline device check... [2026-07-13 08:55:29.498] [INFO ] Starting offline device check... [2026-07-13 08:55:29.499] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.1ms idle=991.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 08:55:29.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=987.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.512] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.514] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=0.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.516] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.5ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.517] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.519] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.519] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.520] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.521] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.523] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.527] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=0.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.527] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.533] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.537] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.538] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.551] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.577] [DEBUG] QUERY OK source="tms_terminals" db=25.5ms idle=12.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 08:55:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 08:55:29.578] [INFO ] Terminal 98250623730001 back online [2026-07-13 08:55:29.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=26.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.580] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.581] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.583] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.584] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.598] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.599] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=14.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.600] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.608] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=9.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.615] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.618] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.620] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.621] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.9ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.625] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.8ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.628] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.629] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.629] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.633] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.634] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 08:55:29.634] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 08:55:29.634] [INFO ] Offline device check completed successfully [2026-07-13 09:00:15.359] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 09:00:15.361] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=1794.6ms 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-07-13 09:00:15.362] [DEBUG] QUERY OK source="filter_usage" db=0.4ms queue=0.1ms idle=793.6ms 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-07-13 09:00:15.362] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 09:00:29.634] [INFO ] Running offline device check... [2026-07-13 09:00:29.635] [INFO ] Starting offline device check... [2026-07-13 09:00:29.636] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=1023.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 09:00:29.644] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=22.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.653] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=9.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.656] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.657] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.660] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.662] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.677] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.679] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.686] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.692] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.694] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.696] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.697] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.709] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.735] [DEBUG] QUERY OK source="tms_terminals" db=24.9ms idle=13.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 09:00:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 09:00:29.735] [INFO ] Terminal 98250623730001 back online [2026-07-13 09:00:29.737] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=25.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.741] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.763] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.764] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=21.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.765] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.776] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.782] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=4.3ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.794] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.796] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.797] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.4ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.799] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.802] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.808] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:00:29.808] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 09:00:29.809] [INFO ] Offline device check completed successfully [2026-07-13 09:05:29.810] [INFO ] Running offline device check... [2026-07-13 09:05:29.810] [INFO ] Starting offline device check... [2026-07-13 09:05:29.813] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.9ms idle=1168.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 09:05:29.821] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=169.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms queue=0.1ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.832] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.833] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.836] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.838] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.838] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.839] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.841] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.845] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.847] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.855] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms queue=0.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.861] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=10.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.862] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.865] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.4ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.918] [DEBUG] QUERY OK source="tms_terminals" db=35.3ms queue=0.1ms idle=16.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 09:05:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 09:05:29.919] [INFO ] Terminal 98250623730001 back online [2026-07-13 09:05:29.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.9ms idle=37.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.924] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.926] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:29.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.006] [DEBUG] QUERY OK source="tms_terminals" db=19.6ms queue=41.8ms idle=15.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 09:05:29], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 09:05:30.006] [INFO ] Terminal 98251226730001 back online [2026-07-13 09:05:30.007] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=62.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.008] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.027] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.029] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=1.5ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.031] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.033] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.037] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:05:30.040] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 09:05:30.040] [INFO ] Offline device check completed successfully [2026-07-13 09:10:30.040] [INFO ] Running offline device check... [2026-07-13 09:10:30.041] [INFO ] Starting offline device check... [2026-07-13 09:10:30.042] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=1312.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 09:10:30.049] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms queue=0.1ms idle=312.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.055] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.056] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.057] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.058] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.058] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.059] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.062] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.067] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.075] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.078] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.080] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.080] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.081] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.107] [DEBUG] QUERY OK source="tms_terminals" db=13.5ms idle=12.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 09:10:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 09:10:30.107] [INFO ] Terminal 98250623730001 back online [2026-07-13 09:10:30.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=14.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.110] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.112] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.114] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.129] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms queue=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.154] [DEBUG] QUERY OK source="tms_terminals" db=25.1ms idle=15.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 09:10:30], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 09:10:30.155] [INFO ] Terminal 98251226730001 back online [2026-07-13 09:10:30.156] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=26.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.156] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.164] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.174] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.176] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.177] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.179] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.180] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.183] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.185] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.186] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.187] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.188] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 09:10:30.191] [INFO ] Offline device check completed. Found 40 offline devices, updated 2 statuses. [2026-07-13 09:10:30.191] [INFO ] Offline device check completed successfully [2026-07-13 09:13:47.363] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 09:13:47.363] [INFO ] Incoming JSON payload: {"oid":"6de8ab19-b814-4f82-aeb8-53c31a43a227","sn":"98251226730001","uploadTime":"2026-07-13T17:17:01Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"ram_free_mb","value":"898","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"data_usage_mb","value":"2","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-07-13T17:17:01Z"},{"itemkey":"installed_apps","value":"3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup\/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif \/ Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck), SDLgui (com.zebra.sdl), Safety Center Resources (com.android.safetycenter.resources), Scanner (com.morefun.scanner), SecureElementApplication (com.android.se.go), Sensor Test (com.mediatek.sensorhub.ui), Settings (com.android.settings), Settings Storage (com.android.providers.settings), Settings Suggestions (com.android.settings.intelligence), Shell (com.android.shell), Shukria Agent (com.agent.unitey_agent), Sim App Dialog (com.android.simappdialog), SimProcessor (com.mediatek.simprocessor), Sounds (com.android.soundpicker), Storage Manager (com.android.storagemanager), System Connectivity Resources (com.android.connectivity.resources), System Tracing (com.android.traceur), System UI (com.android.systemui), System UWB Resources (com.android.uwb.resources), System Wi-Fi Resources (com.android.wifi.resources), TMS (com.shukria.kiosklauncher), TalkBack (com.google.android.marvin.talkback), Tall cutout (com.android.internal.display.cutout.emulation.tall), Telephony Assist (com.mediatek.telephony), Tethering (com.android.networkstack.tethering.inprocess), TetheringResOverlay (com.android.networkstack.tethering.inprocess.overlay), TetheringResOverlay (com.android.networkstack.tethering.overlay), TetheringResOverlay (com.google.android.networkstack.tethering.overlay), USB updater (com.morefun.usbupdater), User Dictionary (com.android.providers.userdictionary), VpnDialogs (com.android.vpndialogs), Waterfall cutout (com.android.internal.display.cutout.emulation.waterfall), WifiResGoogleOverlay (com.google.android.wifi.resources.overlay), Work Setup (com.android.managedprovisioning), YDemo (com.morefun.ysdk.sample), YSDK (com.morefun.ysdk), android.auto_generated_rro_product__ (android.auto_generated_rro_product__), com.android.backupconfirm (com.android.backupconfirm), com.android.carrierconfig (com.android.carrierconfig), com.android.cellbroadcastreceiver.CellBroadcastReceiverApp (com.android.cellbroadcastreceiver), com.android.localtransport (com.android.localtransport), com.android.ondevicepersonalization.services (com.android.ondevicepersonalization.services), com.android.onetimeinitializer (com.android.onetimeinitializer), com.android.providers.media (com.android.providers.media), com.android.provision (com.android.provision), com.android.sdksandbox (com.android.sdksandbox), com.android.sharedstoragebackup (com.android.sharedstoragebackup), com.android.wallpaperbackup (com.android.wallpaperbackup), com.android.wallpapercropper (com.android.wallpapercropper), com.android.wallpaperpicker (com.android.wallpaperpicker), com.android.wifi.dialog (com.android.wifi.dialog), com.android.wifi.ma (truncated) [2026-07-13 09:13:47.366] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "6de8ab19-b814-4f82-aeb8-53c31a43a227", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-07-13T17:17:01Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-07-13T17:17:01Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-07-13T17:17:01Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-07-13T17:17:01Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T17:17:01Z", "value" => "898"}, %{"itemkey" => "network_type", "timestamp" => "2026-07-13T17:17:01Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T17:17:01Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T17:17:01Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T17:17:01Z", "value" => "2"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T17:17:01Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T17:17:01Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T17:17:01Z", "vendor" => "morefun"} [2026-07-13 09:13:47.366] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-07-13 09:13:47.366] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 09:13:47.368] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-07-13 09:13:47.369] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=1025.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 09:13:47.370] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.2ms idle=21.3ms 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) AND (p0.`is_default` = TRUE)) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["morefun", "kiosk_launcher"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:36 [2026-07-13 09:13:47.370] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-07-13 09:13:47.372] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 09:13:47.372] [INFO ] Terminal updated: 98251226730001 [2026-07-13 09:13:47.379] [DEBUG] QUERY OK source="tms_terminals" db=6.3ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 09:13:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 09:13:47.379] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-07-13 09:13:47.382] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms queue=0.1ms idle=7.3ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 09:13:47.388] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms queue=0.1ms idle=4.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 09:13:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 09:13:47.395] [DEBUG] QUERY OK db=5.8ms queue=0.1ms idle=6.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "6de8ab19-b814-4f82-aeb8-53c31a43a227", "2026-07-13T17:17:01Z", ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 09:13:47.395] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47120, oid: "6de8ab19-b814-4f82-aeb8-53c31a43a227", upload_time: "2026-07-13T17:17:01Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]} [2026-07-13 09:13:47.395] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-07-13T17:17:01Z", "value" => "morefun"} [2026-07-13 09:13:47.401] [DEBUG] QUERY OK db=5.5ms idle=7.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "morefun", "vendor", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.401] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405469, itemkey: "vendor", value: "morefun", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.401] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-07-13T17:17:01Z", "value" => "kiosk_launcher"} [2026-07-13 09:13:47.409] [DEBUG] QUERY OK db=6.8ms idle=6.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "kiosk_launcher", "model", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.409] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405470, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.409] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-07-13T17:17:01Z", "value" => "1.0"} [2026-07-13 09:13:47.416] [DEBUG] QUERY OK db=6.7ms idle=8.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "1.0", "app_version", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.417] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405471, itemkey: "app_version", value: "1.0", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.417] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-07-13T17:17:01Z", "value" => "13"} [2026-07-13 09:13:47.424] [DEBUG] QUERY OK db=6.3ms idle=8.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "13", "android_version", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.424] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405472, itemkey: "android_version", value: "13", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.425] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-07-13T17:17:01Z", "value" => "898"} [2026-07-13 09:13:47.434] [DEBUG] QUERY OK db=9.3ms idle=8.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "898", "ram_free_mb", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.435] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405473, itemkey: "ram_free_mb", value: "898", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.435] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-07-13T17:17:01Z", "value" => "WIFI"} [2026-07-13 09:13:47.440] [DEBUG] QUERY OK db=5.5ms idle=11.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "WIFI", "network_type", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.441] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405474, itemkey: "network_type", value: "WIFI", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.441] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-07-13T17:17:01Z", "value" => "true"} [2026-07-13 09:13:47.449] [DEBUG] QUERY OK db=5.6ms queue=0.2ms idle=8.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "true", "kiosk_active", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.449] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405475, itemkey: "kiosk_active", value: "true", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.449] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-07-13T17:17:01Z", "value" => ""} [2026-07-13 09:13:47.455] [DEBUG] QUERY OK db=5.6ms idle=8.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-07-13T17:17:01Z", "sim_operator", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.455] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405476, itemkey: "sim_operator", value: nil, timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.455] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"} [2026-07-13 09:13:47.466] [DEBUG] QUERY OK db=9.8ms queue=0.5ms idle=7.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "UNKNOWN", "sim_number", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.467] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405477, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.467] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"} [2026-07-13 09:13:47.473] [DEBUG] QUERY OK db=5.9ms idle=12.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "UNKNOWN", "sim_iccid", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.473] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405478, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.473] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"} [2026-07-13 09:13:47.479] [DEBUG] QUERY OK db=4.8ms idle=7.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "UNKNOWN", "sim_imsi", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.479] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405479, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.479] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"} [2026-07-13 09:13:47.485] [DEBUG] QUERY OK db=5.8ms idle=6.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "UNKNOWN", "sim_iccid2", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.485] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405480, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.486] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-07-13T17:17:01Z", "value" => "UNKNOWN"} [2026-07-13 09:13:47.491] [DEBUG] QUERY OK db=5.5ms idle=7.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "UNKNOWN", "sim_imsi2", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.492] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405481, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.492] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-07-13T17:17:01Z", "value" => "2"} [2026-07-13 09:13:47.499] [DEBUG] QUERY OK db=6.5ms idle=7.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "2", "data_usage_mb", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.499] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405482, itemkey: "data_usage_mb", value: "2", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.499] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-07-13T17:17:01Z", "value" => "0"} [2026-07-13 09:13:47.506] [DEBUG] QUERY OK db=6.1ms idle=8.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "0", "mobile_data_mb", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.506] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405483, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 09:13:47.508] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-07-13T17:17:01Z", "value" => "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ...} [2026-07-13 09:13:47.517] [DEBUG] QUERY OK db=7.4ms idle=9.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-07-13T17:17:01Z", "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., "installed_apps", 47120, ~N[2026-07-13 09:13:47], ~N[2026-07-13 09:13:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 09:13:47.517] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405484, itemkey: "installed_apps", value: "3 Button Navigation Bar (com.android.internal.systemui.navbar.threebutton), Android AdServices (com.android.adservices.api), Android Keyboard (AOSP) (com.android.inputmethod.latin), Android Services Library (android.ext.services), Android Shared Library (android.ext.shared), Android System (android), Android System WebView (com.android.webview), Appstore (com.morefun.appstore), Basic Daydreams (com.android.dreams.basic), Blocked Numbers Storage (com.android.providers.blockednumber), Bluetooth (com.android.bluetooth), Bluetooth MIDI Service (com.android.bluetoothmidiservice), Bookmark Provider (com.android.bookmarkprovider), Call Log Backup/Restore (com.android.calllogbackup), Call Recorder (com.mediatek.callrecorder), Camera (com.mediatek.camera), CameraExtensionsProxy (com.android.cameraextensions), CaptivePortalLogin (com.android.captiveportallogin), CarrierDefaultApp (com.android.carrierdefaultapp), Cell Broadcast Service (com.android.cellbroadcastservice), Certificate Installer (com.android.certinstaller), Companion Device Manager (com.android.companiondevicemanager), Contacts Storage (com.android.providers.contacts), Corner cutout (com.android.internal.display.cutout.emulation.corner), Default Print Service (com.android.bips), Double cutout (com.android.internal.display.cutout.emulation.double), Download Manager (com.android.providers.downloads), Downloads (com.android.providers.downloads.ui), DuraSpeed (com.mediatek.duraspeed), Dynamic System Updates (com.android.dynsystem), Emergency information (com.android.emergency), Employee Attendance & Salary Calculator (com.gsbusiness.employeeattendancesalarycalculator), EscPrinter (com.morefun.escprinter), External Storage (com.android.externalstorage), Files (com.android.documentsui), Fused Location (com.android.location.fused), Gallery (com.android.gallery3d), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_extra_wide_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_narrow_back), Gestural Navigation Bar (com.android.internal.systemui.navbar.gestural_wide_back), Google Pinyin Input (com.google.android.inputmethod.pinyin), Google Text-to-speech Engine (com.google.android.tts), GoogleNetworkStackResOverlay (com.google.android.networkstack.overlay), HTML Viewer (com.android.htmlviewer), HardwareManager (com.morefun.pos.hardwaremanager), Input Devices (com.android.inputdevices), Intent Filter Verification Service (com.android.statementservice), Key Chain (com.android.keychain), LocationEM2 (com.mediatek.lbs.em2.ui), MFLauncher (com.morefun.launcher), MF_TMS (com.morefun.tms), MTP Host (com.android.mtp), Media Storage (com.android.providers.media.module), Mercury POS Java (com.mercury.posjava), Mobile Data (com.android.phone), Mobile Network Configuration (com.android.providers.telephony), Module Metadata (com.android.modulemetadata), MusicFX (com.android.musicfx), My Application (com.example.myapplication), Network manager (com.android.networkstack.inprocess), NetworkStackInProcessResOverlay (com.android.networkstack.inprocess.overlay), NetworkStackResOverlay (com.android.networkstack.overlay), Nfc Service (com.android.nfc), Noto Serif / Source Sans Pro (com.android.theme.font.notoserifsource), OsuLogin (com.android.hotspot2.osulogin), POS Capture (com.pos.capture), PacProcessor (com.android.pacprocessor), Package installer (com.android.packageinstaller), Param setting (com.morefun.m66.param), Pay Sample (com.morefun.pay), Permission controller (com.android.permissioncontroller), Phone Calls (com.android.server.telecom), Print Service Recommendation Service (com.android.printservice.recommendation), Print Spooler (com.android.printspooler), ProductTest (com.morefun.producttest), ProxyHandler (com.android.proxyhandler), Punch Hole cutout (com.android.internal.display.cutout.emulation.hole), Quickstep (com.android.launcher3), RemoteProvisioner (com.android.remoteprovisioner), RilCap (com.mediatek.capctrl.service), RiskInspection (com.morefun.switchcheck)," <> ..., timestamp: "2026-07-13T17:17:01Z", message: nil, status_log_id: 47120, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 09:13:47], updated_at: ~N[2026-07-13 09:13:47]}} [2026-07-13 11:02:26.326] [INFO ] [Ysp.Scheduler] Started. SFTP in 15h 57m, MIS in 19h 57m [2026-07-13 11:02:26.368] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}} [2026-07-13 11:02:26.387] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"}, []}} [2026-07-13 11:02:26.387] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"}, []}} [2026-07-13 11:02:28.127] [INFO ] Terminal Event Listener started and listening to events [2026-07-13 11:02:28.133] [INFO ] Rule Validation Worker started - will run every hour [2026-07-13 11:02:28.134] [INFO ] Building initial filter cache... [2026-07-13 11:02:28.167] [DEBUG] QUERY OK source="tms_terminals" db=4.1ms queue=7.0ms idle=429.7ms 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-07-13 11:02:28.192] [DEBUG] QUERY OK source="filter_usage" db=3.2ms queue=4.6ms idle=233.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-07-13 11:02:28.193] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 11:02:28.285] [INFO ] Device phoenix_client_piyush connected [2026-07-13 11:02:28.340] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4059 (http) [2026-07-13 11:02:28.358] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4059 [2026-07-13 11:07:28.112] [INFO ] Running offline device check... [2026-07-13 11:07:28.147] [INFO ] Starting scheduled rule validation [2026-07-13 11:07:28.147] [DEBUG] Validating missing assignments [2026-07-13 11:07:28.157] [INFO ] Starting offline device check... [2026-07-13 11:07:28.164] [DEBUG] QUERY OK source="tms_terminals" db=4.8ms queue=2.1ms idle=384.2ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:07:28.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms queue=1.6ms idle=58.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.202] [DEBUG] QUERY OK source="terminal_group_rules" db=2.0ms queue=10.9ms idle=24.7ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 11:07:28.206] [DEBUG] QUERY OK source="tms_terminals" db=3.9ms queue=0.1ms idle=0.2ms 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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 11:07:28.207] [DEBUG] Re-applied 0 rules during validation [2026-07-13 11:07:28.207] [DEBUG] Validating invalid assignments [2026-07-13 11:07:28.207] [DEBUG] Validating rule consistency [2026-07-13 11:07:28.207] [DEBUG] Updating group terminal counts [2026-07-13 11:07:28.211] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms queue=0.3ms idle=15.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.214] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=3.5ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.223] [DEBUG] QUERY OK source="terminal_groups" db=1.6ms queue=7.6ms idle=0.7ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 11:07:28.224] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.3ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.225] [DEBUG] QUERY OK source="terminal_groups" db=1.2ms queue=0.8ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 11:07:28.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.227] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.235] [DEBUG] QUERY OK source="terminal_groups" db=1.0ms queue=0.3ms idle=0.9ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 11:07:28.239] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms queue=2.4ms idle=0.7ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 11:07:28.243] [DEBUG] QUERY OK source="terminal_group_rules" db=1.9ms queue=1.8ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 11:07:28.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.251] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.254] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.256] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=1.3ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.257] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.1ms queue=1.8ms idle=0.3ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 11:07:28.261] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.3ms queue=0.8ms idle=1.7ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 11:07:28.266] [DEBUG] QUERY OK source="terminal_group_memberships" db=3.4ms queue=0.5ms idle=0.2ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 11:07:28.275] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.277] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=9.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.280] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=1.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.281] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 11:07:28.281] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 11:07:28.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.284] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.290] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms queue=2.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.9ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.395] [DEBUG] QUERY OK source="tms_terminals" db=15.5ms queue=2.1ms idle=80.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:07:28], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:07:28.395] [INFO ] Terminal 98251226730001 back online [2026-07-13 11:07:28.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=87.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.397] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.2ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.411] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.413] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.425] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.2ms idle=11.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.431] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.440] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.443] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.445] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.446] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.447] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:07:28.450] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:07:28.450] [INFO ] Offline device check completed successfully [2026-07-13 11:08:16.061] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 11:08:16.062] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T02:18:06Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T02:18:06Z","value":"80"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T02:18:06Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T02:18:06Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T02:18:06Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T02:18:06Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T02:18:06Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T02:18:06Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-13T02:18:06Z","vendor":"MoreFun"} [2026-07-13 11:08:16.063] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T02:18:06Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T02:18:06Z", "value" => "80"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T02:18:06Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T02:18:06Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T02:18:06Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T02:18:06Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T02:18:06Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T02:18:06Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-13T02:18:06Z", "vendor" => "MoreFun"} [2026-07-13 11:08:16.064] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 11:08:16.073] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 11:08:16.073] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 11:08:16.086] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms queue=5.5ms idle=1282.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 11:08:16.088] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=1.2ms idle=781.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 11:08:16.097] [DEBUG] QUERY OK source="parameter_template_values" db=1.3ms queue=1.5ms idle=7.7ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 11:08:16.119] [DEBUG] QUERY OK source="parameter_definitions" db=1.7ms queue=5.3ms idle=22.8ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 11:08:16.131] [DEBUG] QUERY OK source="pos_terminal" db=1.0ms queue=4.0ms idle=29.0ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 11:08:16.167] [DEBUG] QUERY OK source="pos_merchant" db=3.3ms queue=28.9ms idle=15.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 11:08:16.177] [DEBUG] QUERY OK db=2.3ms queue=2.9ms idle=400.6ms 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 ["501983400000000"] [2026-07-13 11:08:16.177] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 11:08:16.191] [DEBUG] QUERY OK source="pos_terminal_data" db=2.5ms queue=3.3ms idle=53.8ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 11:08:16.202] [DEBUG] QUERY OK source="address" db=1.4ms queue=2.0ms idle=32.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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 11:08:16.203] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 11:08:16.217] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 11:08:16.280] [DEBUG] QUERY OK db=31.0ms queue=3.9ms idle=47.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "7ac491f89f277f5bddcb1d33d9b2f98a579fc6c86f4502c14e94a3d26d468593", 355, 916, ~U[2026-07-13 11:08:16Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 11:08:16.281] [INFO ] AutoPushService: Created push log 33543 for MF919 params.zip [2026-07-13 11:08:16.288] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 355, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 11:08:16.288] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 11:08:16.295] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 11:08:16.311] [DEBUG] QUERY OK source="config_file_versions" db=3.0ms queue=3.4ms idle=102.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 11:08:16.325] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 11:08:16.346] [DEBUG] QUERY OK db=18.0ms queue=1.0ms idle=15.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "601755ae9b023800481aa885974efb705795c1c8443bda01dd032f86185461ae", 5410, 17947, ~U[2026-07-13 11:08:16Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 11:08:16.346] [INFO ] AutoPushService: Created push log 33544 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 11:08:16.346] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 5410, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 11:08:16.346] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 11:08:16.346] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 11:08:16.348] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms idle=35.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 11:08:16.359] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 11:08:16.361] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.3ms idle=13.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 11:08:16.361] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 11:08:16.438] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 11:08:16.438] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 11:08:16.438] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 11:08:16.439] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=90.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 11:08:16.440] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 11:08:16.440] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 11:08:16.442] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=79.2ms 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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 11:08:16.448] [INFO ] Terminal updated: 98250623730001 [2026-07-13 11:08:16.463] [DEBUG] QUERY OK source="tms_terminals" db=13.9ms idle=9.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 11:08:16], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 11:08:16.473] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.5ms idle=30.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 11:08:16.475] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.7ms idle=9.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 11:08:16.476] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 11:08:16.477] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 11:08:16.550] [DEBUG] QUERY OK source="parameter_push_logs" db=67.7ms queue=0.8ms idle=7.2ms 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 [19, "application", ~N[2026-07-13 10:38:16]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 11:08:16.551] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 11:08:16.551] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 11:08:16.556] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=79.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 11:08:16.557] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=5.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 11:08:16.557] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 11:08:16.560] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 11:08:16.583] [DEBUG] QUERY OK source="tms_terminals" db=22.8ms idle=2.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:08:16], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 11:08:16.611] [DEBUG] QUERY OK db=22.1ms queue=0.5ms idle=28.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-13T02:18:06Z", ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 11:08:16.622] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47121, oid: "organization_id", upload_time: "2026-07-13T02:18:06Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]} [2026-07-13 11:08:16.623] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T02:18:06Z", "value" => "online"} [2026-07-13 11:08:16.640] [DEBUG] QUERY OK db=15.9ms queue=1.0ms idle=40.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T02:18:06Z", "online", "status", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405485, itemkey: "status", value: "online", timestamp: "2026-07-13T02:18:06Z", message: "Terminal status update", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.643] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 11:08:16.646] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.5ms idle=34.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:08:16], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 11:08:16.647] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T02:18:06Z", "value" => "80"} [2026-07-13 11:08:16.671] [DEBUG] QUERY OK db=23.5ms queue=0.2ms idle=7.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T02:18:06Z", "80", "battery", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.671] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405486, itemkey: "battery", value: "80", timestamp: "2026-07-13T02:18:06Z", message: "Battery level", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.671] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T02:18:06Z", "value" => "online"} [2026-07-13 11:08:16.708] [DEBUG] QUERY OK db=33.8ms queue=2.2ms idle=25.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T02:18:06Z", "online", "network", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.708] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405487, itemkey: "network", value: "online", timestamp: "2026-07-13T02:18:06Z", message: "Network connectivity", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.708] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 11:08:16.710] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=37.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:08:16], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 11:08:16.710] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T02:18:06Z", "value" => "0"} [2026-07-13 11:08:16.727] [DEBUG] QUERY OK db=16.2ms idle=2.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T02:18:06Z", "0", "cpu", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.728] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405488, itemkey: "cpu", value: "0", timestamp: "2026-07-13T02:18:06Z", message: "CPU usage percentage", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.728] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T02:18:06Z", "value" => "1.0.0"} [2026-07-13 11:08:16.743] [DEBUG] QUERY OK db=13.6ms idle=19.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T02:18:06Z", "1.0.0", "parameter_config", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.744] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405489, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T02:18:06Z", message: "Current parameters version", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.744] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T02:18:06Z", "value" => "1.0.1"} [2026-07-13 11:08:16.770] [DEBUG] QUERY OK db=24.8ms queue=0.1ms idle=17.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T02:18:06Z", "1.0.1", "emv_config", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.770] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405490, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T02:18:06Z", message: "Current EMV config version", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.770] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T02:18:06Z", "value" => ""} [2026-07-13 11:08:16.795] [DEBUG] QUERY OK db=22.0ms queue=2.4ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T02:18:06Z", "keys_config", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.795] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405491, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T02:18:06Z", message: "Current keys config version", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.795] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T02:18:06Z", "value" => "1.0.0"} [2026-07-13 11:08:16.815] [DEBUG] QUERY OK db=19.5ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T02:18:06Z", "1.0.0", "application", 47121, ~N[2026-07-13 11:08:16], ~N[2026-07-13 11:08:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 11:08:16.816] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405492, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T02:18:06Z", message: "Current application version", status_log_id: 47121, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 11:08:16], updated_at: ~N[2026-07-13 11:08:16]}} [2026-07-13 11:08:16.817] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=21.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:08:16], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 11:08:16.828] [WARN ] Unexpected async result [2026-07-13 11:08:16.829] [WARN ] Unexpected async result [2026-07-13 11:12:28.451] [INFO ] Running offline device check... [2026-07-13 11:12:28.451] [INFO ] Starting offline device check... [2026-07-13 11:12:28.453] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=424.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:12:28.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=326.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.466] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms queue=0.2ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.471] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.471] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.472] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.474] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.475] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.477] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.481] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.483] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.496] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms queue=0.3ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.501] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.503] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.503] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.520] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.521] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=17.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.523] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.526] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.1ms decode=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.563] [DEBUG] QUERY OK source="tms_terminals" db=17.9ms idle=19.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:12:28], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:12:28.565] [INFO ] Terminal 98251226730001 back online [2026-07-13 11:12:28.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=21.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.576] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.577] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.580] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.581] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=0.1ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.593] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.594] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.595] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.599] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.600] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.602] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.603] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.604] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:12:28.605] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 11:12:28.605] [INFO ] Offline device check completed successfully [2026-07-13 11:13:15.096] [ERROR] ** (Bandit.TransportError) Unrecoverable error: timeout [2026-07-13 11:17:28.136] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 11:17:28.140] [DEBUG] QUERY OK source="tms_terminals" db=4.3ms queue=0.1ms idle=821.5ms 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-07-13 11:17:28.144] [DEBUG] QUERY OK source="filter_usage" db=2.9ms idle=50.2ms 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-07-13 11:17:28.144] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 11:17:28.605] [INFO ] Running offline device check... [2026-07-13 11:17:28.605] [INFO ] Starting offline device check... [2026-07-13 11:17:28.610] [DEBUG] QUERY OK source="tms_terminals" db=3.8ms idle=465.2ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:17:28.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=468.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.631] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms idle=14.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.638] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=2.1ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.641] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.642] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.645] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.647] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.654] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.656] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=1.2ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.6ms queue=1.0ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.675] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=12.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.677] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.680] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.2ms queue=0.1ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.706] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=19.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.709] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.711] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.715] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.718] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=14.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.746] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms queue=0.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.747] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.754] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.761] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.2ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.763] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.764] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.767] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.774] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.777] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.778] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:17:28.778] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 11:17:28.778] [INFO ] Offline device check completed successfully [2026-07-13 11:18:40.299] [ERROR] MyXQL.Connection (#PID<0.1059.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-07-13 11:18:40.301] [ERROR] MyXQL.Connection (#PID<0.1059.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:40.830] [ERROR] MyXQL.Connection (#PID<0.1060.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-07-13 11:18:40.832] [ERROR] MyXQL.Connection (#PID<0.1060.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:41.824] [ERROR] MyXQL.Connection (#PID<0.1059.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:41.842] [ERROR] MyXQL.Connection (#PID<0.1065.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-07-13 11:18:41.842] [ERROR] MyXQL.Connection (#PID<0.1064.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-07-13 11:18:41.843] [ERROR] MyXQL.Connection (#PID<0.1064.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:41.843] [ERROR] MyXQL.Connection (#PID<0.1065.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:42.168] [ERROR] MyXQL.Connection (#PID<0.1369.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-07-13 11:18:42.169] [ERROR] MyXQL.Connection (#PID<0.1369.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:42.745] [ERROR] MyXQL.Connection (#PID<0.1060.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:43.167] [ERROR] MyXQL.Connection (#PID<0.1370.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-07-13 11:18:43.169] [ERROR] MyXQL.Connection (#PID<0.1370.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:44.316] [ERROR] MyXQL.Connection (#PID<0.1370.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:44.454] [ERROR] MyXQL.Connection (#PID<0.1064.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:44.703] [ERROR] MyXQL.Connection (#PID<0.1065.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:45.063] [ERROR] MyXQL.Connection (#PID<0.1369.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:45.960] [ERROR] MyXQL.Connection (#PID<0.1060.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:46.325] [ERROR] MyXQL.Connection (#PID<0.1059.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:46.634] [ERROR] MyXQL.Connection (#PID<0.1370.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:18:48.676] [ERROR] MyXQL.Connection (#PID<0.1065.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-07-13 11:22:28.779] [INFO ] Running offline device check... [2026-07-13 11:22:28.779] [INFO ] Starting offline device check... [2026-07-13 11:22:28.782] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=1025.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:22:28.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=94.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.2ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.802] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms queue=0.1ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.805] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.809] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.811] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=1.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.813] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.816] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.816] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.823] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.8ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.829] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.832] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.833] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.848] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.863] [DEBUG] QUERY OK source="tms_terminals" db=13.9ms queue=0.5ms idle=16.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:22:28], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:22:28.863] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:22:28.865] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.869] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.4ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=17.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.889] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=8.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.906] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.911] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.912] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.914] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.915] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.916] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.920] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=1.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.921] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.922] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.924] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:22:28.924] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:22:28.925] [INFO ] Offline device check completed successfully [2026-07-13 11:27:28.925] [INFO ] Running offline device check... [2026-07-13 11:27:28.925] [INFO ] Starting offline device check... [2026-07-13 11:27:28.929] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=2.5ms idle=340.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:27:28.938] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=166.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.945] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.949] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=2.3ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.953] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.954] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.955] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.957] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=1.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.958] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.962] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=2.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.963] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.968] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.977] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.984] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms queue=0.1ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.987] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.989] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:28.990] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.003] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.030] [DEBUG] QUERY OK source="tms_terminals" db=26.1ms queue=0.1ms idle=13.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:27:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:27:29.030] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:27:29.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=27.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.037] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.041] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.058] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.9ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=14.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.061] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.069] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.069] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.072] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.073] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.075] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.081] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.085] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.088] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=1.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.090] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.091] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.096] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:27:29.096] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:27:29.096] [INFO ] Offline device check completed successfully [2026-07-13 11:32:28.145] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 11:32:28.147] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=1203.1ms 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-07-13 11:32:28.149] [DEBUG] QUERY OK source="filter_usage" db=0.9ms idle=555.4ms 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-07-13 11:32:28.149] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 11:32:29.097] [INFO ] Running offline device check... [2026-07-13 11:32:29.097] [INFO ] Starting offline device check... [2026-07-13 11:32:29.099] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms queue=0.1ms idle=502.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:32:29.107] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=452.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.113] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.117] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.118] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.119] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.119] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.121] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.122] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.124] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.129] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.130] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.143] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms queue=1.1ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.145] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.4ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.199] [DEBUG] QUERY OK source="tms_terminals" db=34.8ms queue=0.3ms idle=15.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:32:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:32:29.199] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:32:29.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=36.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.201] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.204] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.205] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms queue=0.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.221] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.1ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.232] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms queue=1.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=10.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.238] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.239] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.243] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.246] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.247] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.248] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.249] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.251] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.254] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.256] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.260] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:32:29.260] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:32:29.260] [INFO ] Offline device check completed successfully [2026-07-13 11:37:29.261] [INFO ] Running offline device check... [2026-07-13 11:37:29.261] [INFO ] Starting offline device check... [2026-07-13 11:37:29.263] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=725.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:37:29.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms idle=175.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.277] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.280] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.283] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.284] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.286] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.289] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.290] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.300] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.2ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.304] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms queue=0.1ms idle=11.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.307] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms queue=0.1ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.309] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.6ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.324] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.351] [DEBUG] QUERY OK source="tms_terminals" db=26.8ms idle=14.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:37:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:37:29.351] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:37:29.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=27.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.354] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.360] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.361] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.379] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.380] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=18.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.390] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms queue=0.1ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.393] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.395] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.398] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.409] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.410] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.412] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.413] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.414] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.417] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:37:29.417] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:37:29.417] [INFO ] Offline device check completed successfully [2026-07-13 11:42:29.418] [INFO ] Running offline device check... [2026-07-13 11:42:29.418] [INFO ] Starting offline device check... [2026-07-13 11:42:29.421] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=867.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:42:29.427] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=428.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.432] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms queue=0.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.437] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.440] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.444] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.445] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.460] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.462] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.464] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.483] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.8ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.519] [DEBUG] QUERY OK source="tms_terminals" db=35.7ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:42:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:42:29.519] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:42:29.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.523] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.524] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.526] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.543] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.2ms queue=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.544] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=17.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.555] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.556] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.559] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.561] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.562] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.568] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.569] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.570] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.575] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.577] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:42:29.577] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:42:29.577] [INFO ] Offline device check completed successfully [2026-07-13 11:47:28.150] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 11:47:28.152] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=583.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-07-13 11:47:28.153] [DEBUG] QUERY OK source="filter_usage" db=0.4ms idle=142.6ms 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-07-13 11:47:28.153] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 11:47:29.577] [INFO ] Running offline device check... [2026-07-13 11:47:29.577] [INFO ] Starting offline device check... [2026-07-13 11:47:29.579] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1008.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:47:29.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.594] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.599] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms queue=1.0ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.602] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.604] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.614] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.614] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.631] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms queue=0.2ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.633] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.636] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.654] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.692] [DEBUG] QUERY OK source="tms_terminals" db=37.8ms queue=0.1ms idle=18.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:47:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:47:29.693] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:47:29.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=42.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.699] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.702] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.718] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.719] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=15.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.720] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.729] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.731] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.734] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.743] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.744] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.745] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.748] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.749] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.754] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.755] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.757] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:47:29.757] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:47:29.757] [INFO ] Offline device check completed successfully [2026-07-13 11:52:29.758] [INFO ] Running offline device check... [2026-07-13 11:52:29.758] [INFO ] Starting offline device check... [2026-07-13 11:52:29.759] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=718.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:52:29.767] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=549.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.777] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.778] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.781] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.785] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.787] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.791] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.795] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.9ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.805] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms queue=0.2ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=11.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.816] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms queue=0.5ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.821] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.823] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.842] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.892] [DEBUG] QUERY OK source="tms_terminals" db=49.2ms queue=0.2ms idle=16.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:52:29], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:52:29.893] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:52:29.894] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=50.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.896] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.921] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.922] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=17.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.932] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.934] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.937] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.943] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.949] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.956] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.959] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.962] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.5ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.970] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.972] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.979] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.980] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:52:29.981] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:52:29.981] [INFO ] Offline device check completed successfully [2026-07-13 11:57:29.981] [INFO ] Running offline device check... [2026-07-13 11:57:29.981] [INFO ] Starting offline device check... [2026-07-13 11:57:29.987] [DEBUG] QUERY OK source="tms_terminals" db=4.2ms idle=916.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 11:57:29.994] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=826.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.002] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms queue=0.3ms idle=9.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.004] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.007] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.007] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.009] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.010] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.011] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.013] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.097] [DEBUG] QUERY OK source="tms_terminals" db=43.3ms queue=0.1ms idle=13.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 11:57:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 11:57:30.097] [INFO ] Terminal 98250623730001 back online [2026-07-13 11:57:30.099] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=44.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.103] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.104] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.116] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.117] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=12.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.119] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=1.2ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.130] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.132] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.138] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.140] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.142] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.6ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=1.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.4ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.154] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.157] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.162] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms queue=0.1ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.5ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 11:57:30.169] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 11:57:30.169] [INFO ] Offline device check completed successfully [2026-07-13 11:59:26.556] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-07-13 12:00:26.558] [INFO ] :alarm_handler: {:clear, :system_memory_high_watermark} [2026-07-13 12:02:28.153] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 12:02:28.154] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=897.1ms 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-07-13 12:02:28.156] [DEBUG] QUERY OK source="filter_usage" db=1.4ms idle=48.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-07-13 12:02:28.156] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 12:02:30.172] [INFO ] Running offline device check... [2026-07-13 12:02:30.172] [INFO ] Starting offline device check... [2026-07-13 12:02:30.174] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=909.2ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:02:30.183] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=67.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.189] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms queue=0.2ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.196] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.220] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.226] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.227] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.245] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.267] [DEBUG] QUERY OK source="tms_terminals" db=22.0ms idle=16.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:02:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:02:30.267] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:02:30.269] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.272] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.273] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.275] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.290] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.5ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.292] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=15.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.293] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms queue=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.304] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=10.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.311] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.316] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.318] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.319] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.323] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.325] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.326] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.327] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.328] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=1.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=1.2ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:02:30.335] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:02:30.335] [INFO ] Offline device check completed successfully [2026-07-13 12:07:28.281] [INFO ] Starting scheduled rule validation [2026-07-13 12:07:28.281] [DEBUG] Validating missing assignments [2026-07-13 12:07:28.283] [DEBUG] QUERY OK source="terminal_group_rules" db=1.3ms queue=0.1ms idle=157.0ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 12:07:28.285] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=33.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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 12:07:28.286] [DEBUG] Re-applied 0 rules during validation [2026-07-13 12:07:28.286] [DEBUG] Validating invalid assignments [2026-07-13 12:07:28.286] [DEBUG] Validating rule consistency [2026-07-13 12:07:28.286] [DEBUG] Updating group terminal counts [2026-07-13 12:07:28.287] [DEBUG] QUERY OK source="terminal_groups" db=0.8ms idle=3.0ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 12:07:28.288] [DEBUG] QUERY OK source="terminal_groups" db=0.9ms idle=2.7ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 12:07:28.289] [DEBUG] QUERY OK source="terminal_groups" db=0.8ms idle=1.5ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 12:07:28.290] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms queue=0.1ms idle=1.5ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 12:07:28.291] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=1.3ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 12:07:28.292] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 12:07:28.293] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.1ms idle=0.8ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 12:07:28.294] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms idle=1.5ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 12:07:28.294] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 12:07:28.294] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 12:07:30.335] [INFO ] Running offline device check... [2026-07-13 12:07:30.335] [INFO ] Starting offline device check... [2026-07-13 12:07:30.337] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.3ms idle=210.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:07:30.346] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=78.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms queue=0.1ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.3ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.357] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.359] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.360] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.361] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.363] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.365] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.371] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=1.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.372] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.381] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.387] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms queue=0.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.3ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.433] [DEBUG] QUERY OK source="tms_terminals" db=25.4ms idle=16.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:07:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:07:30.433] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:07:30.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=27.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.437] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.441] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.442] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.457] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.2ms queue=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=15.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.460] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.472] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.474] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=12.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.478] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=0.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.480] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.3ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.483] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.488] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.491] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.491] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.493] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.494] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.496] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.497] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.500] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.501] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.502] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.503] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:07:30.504] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:07:30.504] [INFO ] Offline device check completed successfully [2026-07-13 12:09:26.590] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-07-13 12:10:26.598] [INFO ] :alarm_handler: {:clear, :system_memory_high_watermark} [2026-07-13 12:12:30.504] [INFO ] Running offline device check... [2026-07-13 12:12:30.504] [INFO ] Starting offline device check... [2026-07-13 12:12:30.508] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms queue=0.1ms idle=1295.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:12:30.515] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=293.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.8ms queue=0.4ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.527] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms queue=0.1ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.528] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.531] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.532] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.534] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.535] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.538] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.542] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.547] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=0.3ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.551] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.8ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.586] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.0ms idle=21.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.589] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.607] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.647] [DEBUG] QUERY OK source="tms_terminals" db=40.2ms idle=15.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:12:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:12:30.648] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:12:30.649] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=41.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.652] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.653] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.654] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.671] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.673] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.681] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.682] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.685] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.686] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.687] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.692] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.693] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.694] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.696] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.697] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.699] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.705] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.709] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=2.3ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.1ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:12:30.712] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:12:30.712] [INFO ] Offline device check completed successfully [2026-07-13 12:15:26.621] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-07-13 12:17:28.157] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 12:17:28.158] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1959.2ms 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-07-13 12:17:28.160] [DEBUG] QUERY OK source="filter_usage" db=0.7ms idle=956.7ms 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-07-13 12:17:28.160] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 12:17:30.716] [INFO ] Running offline device check... [2026-07-13 12:17:30.716] [INFO ] Starting offline device check... [2026-07-13 12:17:30.717] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1508.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:17:30.724] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=506.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.730] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.739] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.741] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.744] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.745] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.746] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.747] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.749] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.759] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=9.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.768] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.5ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.776] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.3ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.777] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.795] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.820] [DEBUG] QUERY OK source="tms_terminals" db=24.9ms queue=0.1ms idle=18.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:17:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:17:30.821] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:17:30.822] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=26.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.823] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.825] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.827] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.848] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.850] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=21.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.851] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.857] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.862] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.863] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.873] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.876] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.879] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.879] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.880] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.881] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.882] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:17:30.883] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:17:30.884] [INFO ] Offline device check completed successfully [2026-07-13 12:22:30.884] [INFO ] Running offline device check... [2026-07-13 12:22:30.884] [INFO ] Starting offline device check... [2026-07-13 12:22:30.886] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=1690.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:22:30.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=749.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.901] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.906] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.911] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.913] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.918] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.919] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.927] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.932] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.934] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.935] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.935] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.970] [DEBUG] QUERY OK source="tms_terminals" db=17.7ms idle=16.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:22:30], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:22:30.970] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:22:30.972] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=18.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.975] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.977] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.979] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.995] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.9ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=17.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:30.998] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.008] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.009] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.011] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.019] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.024] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.027] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.029] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:22:31.036] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:22:31.037] [INFO ] Offline device check completed successfully [2026-07-13 12:27:26.660] [INFO ] :alarm_handler: {:clear, :system_memory_high_watermark} [2026-07-13 12:27:31.038] [INFO ] Running offline device check... [2026-07-13 12:27:31.038] [INFO ] Starting offline device check... [2026-07-13 12:27:31.040] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=984.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:27:31.048] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms queue=0.2ms idle=824.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.054] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.055] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.058] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=1.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.065] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.072] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.075] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.2ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.082] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.089] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.095] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.134] [DEBUG] QUERY OK source="tms_terminals" db=22.9ms idle=15.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:27:31], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:27:31.135] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:27:31.136] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=24.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.140] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.141] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.157] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=17.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.160] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=8.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.171] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.172] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.180] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.185] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.187] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.188] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:27:31.200] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:27:31.201] [INFO ] Offline device check completed successfully [2026-07-13 12:28:26.664] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-07-13 12:31:26.674] [INFO ] :alarm_handler: {:clear, :system_memory_high_watermark} [2026-07-13 12:32:26.679] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-07-13 12:32:28.160] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 12:32:28.162] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=1108.4ms 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-07-13 12:32:28.162] [DEBUG] QUERY OK source="filter_usage" db=0.4ms idle=106.9ms 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-07-13 12:32:28.163] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 12:32:31.202] [INFO ] Running offline device check... [2026-07-13 12:32:31.203] [INFO ] Starting offline device check... [2026-07-13 12:32:31.206] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1141.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:32:31.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=142.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.2ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.227] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.228] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.231] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.232] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.242] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=8.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.252] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.257] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.5ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.259] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.260] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.261] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.0ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.325] [DEBUG] QUERY OK source="tms_terminals" db=47.1ms idle=16.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:32:31], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:32:31.325] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:32:31.327] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=48.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.4ms idle=19.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.356] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.3ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.365] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.368] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.369] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.370] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.381] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.382] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.389] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.392] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:32:31.394] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:32:31.394] [INFO ] Offline device check completed successfully [2026-07-13 12:34:26.684] [INFO ] :alarm_handler: {:clear, :system_memory_high_watermark} [2026-07-13 12:35:26.687] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-07-13 12:37:31.394] [INFO ] Running offline device check... [2026-07-13 12:37:31.394] [INFO ] Starting offline device check... [2026-07-13 12:37:31.397] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.2ms idle=1128.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:37:31.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=341.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.411] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.413] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.417] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=1.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.418] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.420] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.422] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.431] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.446] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=9.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.448] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=2.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.475] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.0ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.532] [DEBUG] QUERY OK source="tms_terminals" db=56.4ms idle=21.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:37:31], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:37:31.532] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:37:31.534] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.6ms idle=57.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.535] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.537] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.540] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.563] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.565] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=23.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.576] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.581] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.582] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.588] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.4ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.593] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.595] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.597] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.598] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.599] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.600] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:37:31.602] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:37:31.602] [INFO ] Offline device check completed successfully [2026-07-13 12:42:31.602] [INFO ] Running offline device check... [2026-07-13 12:42:31.602] [INFO ] Starting offline device check... [2026-07-13 12:42:31.604] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=1311.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:42:31.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=611.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.616] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.618] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.622] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms queue=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.622] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.625] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.626] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.630] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.631] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.644] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=9.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.646] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.646] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.648] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.662] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.2ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.678] [DEBUG] QUERY OK source="tms_terminals" db=15.7ms idle=13.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:42:31], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:42:31.678] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:42:31.680] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=16.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.681] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.683] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.702] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=16.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.702] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.710] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.711] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.713] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.714] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.721] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.722] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.724] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.725] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.727] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.730] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:42:31.735] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:42:31.735] [INFO ] Offline device check completed successfully [2026-07-13 12:45:26.717] [INFO ] :alarm_handler: {:clear, :system_memory_high_watermark} [2026-07-13 12:47:28.164] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 12:47:28.165] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=856.1ms 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-07-13 12:47:28.167] [DEBUG] QUERY OK source="filter_usage" db=1.4ms idle=278.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-07-13 12:47:28.167] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 12:47:31.736] [INFO ] Running offline device check... [2026-07-13 12:47:31.736] [INFO ] Starting offline device check... [2026-07-13 12:47:31.738] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=843.2ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:47:31.745] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=430.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.752] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.754] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.755] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.756] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.757] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.758] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.765] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms queue=1.0ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.766] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.779] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.2ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.782] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.797] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.852] [DEBUG] QUERY OK source="tms_terminals" db=54.6ms idle=13.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:47:31], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:47:31.852] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:47:31.853] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=55.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.857] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.859] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.864] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=0.1ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.0ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=18.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.899] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.901] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.907] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.912] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.913] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.914] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.914] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.915] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.916] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:47:31.917] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:47:31.917] [INFO ] Offline device check completed successfully [2026-07-13 12:52:31.917] [INFO ] Running offline device check... [2026-07-13 12:52:31.917] [INFO ] Starting offline device check... [2026-07-13 12:52:31.919] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=1165.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:52:31.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=165.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=0.1ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.931] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.932] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.934] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.934] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.935] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.937] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.938] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.948] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.953] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.955] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.957] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.958] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.970] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.995] [DEBUG] QUERY OK source="tms_terminals" db=23.9ms queue=0.1ms idle=12.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:52:31], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:52:31.995] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:52:31.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=25.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:31.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.000] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.002] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.016] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.024] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.026] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.027] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.028] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.033] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.034] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.041] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.042] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:52:32.043] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:52:32.044] [INFO ] Offline device check completed successfully [2026-07-13 12:57:32.044] [INFO ] Running offline device check... [2026-07-13 12:57:32.044] [INFO ] Starting offline device check... [2026-07-13 12:57:32.046] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1461.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 12:57:32.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms queue=0.2ms idle=454.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms queue=0.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.062] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.065] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.071] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.074] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.075] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.081] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.085] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.087] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.088] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.088] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.101] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.126] [DEBUG] QUERY OK source="tms_terminals" db=24.2ms idle=12.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 12:57:32], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 12:57:32.126] [INFO ] Terminal 98250623730001 back online [2026-07-13 12:57:32.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=25.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.130] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.144] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.144] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.145] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.150] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.151] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.153] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.156] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.160] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.167] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.167] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 12:57:32.169] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 12:57:32.169] [INFO ] Offline device check completed successfully [2026-07-13 13:01:30.779] [INFO ] GET / [2026-07-13 13:01:30.828] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-07-13 13:01:30.866] [DEBUG] QUERY OK source="users_tokens" db=2.6ms queue=1.7ms idle=1192.0ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 27, 45, 109, 172, 39, 234, 172, 161, 101, 184, 157, 80, 139, 213, 150, 119, 197, 89, 58, 11, 16, 98, 143, 187, 89, 160, 157, 63, 0, 206, 202>>, "session", ~U[2026-07-13 13:01:30.859579Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 13:01:30.952] [INFO ] Sent 200 in 172ms [2026-07-13 13:01:38.438] [INFO ] GET /users/log_out [2026-07-13 13:01:38.477] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /users/log_out (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 13:01:41.426] [INFO ] GET /users/log_out [2026-07-13 13:01:41.448] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /users/log_out (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 13:01:54.718] [INFO ] GET /users/log_out [2026-07-13 13:01:54.736] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /users/log_out (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 13:02:24.221] [INFO ] GET /users/log_out [2026-07-13 13:02:24.241] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /users/log_out (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 13:02:28.168] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 13:02:28.169] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=669.5ms 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-07-13 13:02:28.171] [DEBUG] QUERY OK source="filter_usage" db=0.7ms idle=394.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-07-13 13:02:28.171] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 13:02:32.170] [INFO ] Running offline device check... [2026-07-13 13:02:32.170] [INFO ] Starting offline device check... [2026-07-13 13:02:32.172] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=792.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:02:32.178] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=663.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.184] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.188] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=1.6ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.189] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.190] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.208] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms queue=0.1ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.216] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.228] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.263] [DEBUG] QUERY OK source="tms_terminals" db=33.8ms idle=11.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:02:32], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 13:02:32.263] [INFO ] Terminal 98250623730001 back online [2026-07-13 13:02:32.264] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=35.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.265] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.271] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.272] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.285] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.286] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=13.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.287] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.293] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.293] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.297] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.298] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.299] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.304] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.307] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.307] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.309] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:02:32.312] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 13:02:32.312] [INFO ] Offline device check completed successfully [2026-07-13 13:02:37.251] [INFO ] GET /images/favicon.png [2026-07-13 13:02:37.266] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 13:02:42.741] [INFO ] POST /users/log_out [2026-07-13 13:02:42.742] [DEBUG] Processing with PlatformWeb.UserSessionController.delete/2 Parameters: %{"_csrf_token" => "Ql8ZFQZ0aFk5DmYbRw0cMQoDDDIwPCE5p5HLYEYoqgTtt9h_SMbSzOVj", "_method" => "delete"} Pipelines: [:browser] [2026-07-13 13:02:42.744] [DEBUG] QUERY OK source="users_tokens" db=0.7ms queue=0.1ms idle=70.5ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 27, 45, 109, 172, 39, 234, 172, 161, 101, 184, 157, 80, 139, 213, 150, 119, 197, 89, 58, 11, 16, 98, 143, 187, 89, 160, 157, 63, 0, 206, 202>>, "session", ~U[2026-07-13 13:02:42.742348Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 13:02:42.765] [DEBUG] QUERY OK source="users_tokens" db=11.9ms queue=1.0ms idle=79.8ms DELETE u0.* FROM `users_tokens` AS u0 WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) [<<127, 27, 45, 109, 172, 39, 234, 172, 161, 101, 184, 157, 80, 139, 213, 150, 119, 197, 89, 58, 11, 16, 98, 143, 187, 89, 160, 157, 63, 0, 206, 202>>, "session"] ↳ DaProductApp.Users.delete_user_session_token/1, at: lib/da_product_app/users.ex:328 [2026-07-13 13:02:42.770] [INFO ] Sent 302 in 28ms [2026-07-13 13:02:43.160] [INFO ] GET / [2026-07-13 13:02:43.160] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-07-13 13:02:43.168] [INFO ] Sent 200 in 7ms [2026-07-13 13:02:45.774] [INFO ] GET /users/log_in [2026-07-13 13:02:45.774] [DEBUG] Processing with PlatformWeb.UserLoginLive.new/2 Parameters: %{} Pipelines: [:browser, :redirect_if_user_is_authenticated] [2026-07-13 13:02:45.849] [INFO ] Sent 200 in 74ms [2026-07-13 13:02:47.004] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 38µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "cxEZHhEccQgOOQt2HQhRJHRnMAAGCyZIJwuwB_AZTWm1Mj5U74sEExM8", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 13:02:47.323] [DEBUG] MOUNT PlatformWeb.UserLoginLive Parameters: %{} Session: %{"_csrf_token" => "9fliSC0RZnfGPbdqCSCECskp"} [2026-07-13 13:02:47.323] [DEBUG] Replied in 214µs [2026-07-13 13:03:11.027] [INFO ] POST /users/log_in [2026-07-13 13:03:11.027] [DEBUG] Processing with PlatformWeb.UserSessionController.create/2 Parameters: %{"_csrf_token" => "cxEZHhEccQgOOQt2HQhRJHRnMAAGCyZIJwuwB_AZTWm1Mj5U74sEExM8", "user" => %{"email" => "demo@mercury.com", "password" => "[FILTERED]"}} Pipelines: [:browser, :redirect_if_user_is_authenticated] [2026-07-13 13:03:11.029] [DEBUG] QUERY OK source="users" db=0.4ms queue=1.2ms idle=349.0ms SELECT u0.`id`, u0.`email`, u0.`hashed_password`, u0.`confirmed_at`, u0.`role`, u0.`name`, u0.`first_name`, u0.`last_name`, u0.`data`, u0.`inserted_at`, u0.`updated_at` FROM `users` AS u0 WHERE (u0.`email` = ?) ["demo@mercury.com"] ↳ DaProductApp.Users.get_user_by_email_and_password/2, at: lib/da_product_app/users.ex:43 [2026-07-13 13:03:11.360] [DEBUG] QUERY OK db=51.1ms queue=0.4ms idle=629.2ms INSERT INTO `users_tokens` (`context`,`token`,`user_id`,`inserted_at`) VALUES (?,?,?,?) ["session", <<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, 3, ~U[2026-07-13 13:03:11Z]] ↳ DaProductApp.Users.generate_user_session_token/1, at: lib/da_product_app/users.ex:312 [2026-07-13 13:03:11.360] [INFO ] Sent 302 in 333ms [2026-07-13 13:03:11.378] [ERROR] ** (Plug.Conn.AlreadySentError) the response was already sent (plug 1.19.1) lib/plug/conn.ex:914: Plug.Conn.put_resp_header/3 (phoenix 1.7.21) lib/phoenix/controller.ex:495: Phoenix.Controller.redirect/2 (platform_web 0.1.0) lib/platform_web/controllers/user_session_controller.ex:1: PlatformWeb.UserSessionController.action/2 (platform_web 0.1.0) lib/platform_web/controllers/user_session_controller.ex:1: PlatformWeb.UserSessionController.phoenix_controller_pipeline/2 (phoenix 1.7.21) lib/phoenix/router.ex:484: Phoenix.Router.__call__/5 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Piyush/prverification/TMS_UAT/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-07-13 13:03:11.759] [INFO ] GET /dashboard [2026-07-13 13:03:11.760] [DEBUG] Processing with PlatformWeb.DashboardLive.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-07-13 13:03:11.761] [DEBUG] QUERY OK source="users_tokens" db=1.1ms idle=730.6ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:03:11.760363Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 13:03:11.771] [DEBUG] QUERY OK source="users_tokens" db=0.6ms idle=411.2ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:03:11.770975Z]] ↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:10 [2026-07-13 13:03:11.776] [DEBUG] Socket Assigns: %{__changed__: %{current_user: true}, current_user: #DaProductApp.Users.User<__meta__: #Ecto.Schema.Metadata<:loaded, "users">, id: 3, email: "demo@mercury.com", confirmed_at: nil, role: :superuser, name: nil, first_name: nil, last_name: nil, data: nil, permissions: #Ecto.Association.NotLoaded, roles: #Ecto.Association.NotLoaded, inserted_at: ~U[2025-05-12 07:36:10Z], updated_at: ~U[2026-03-13 10:38:22Z], ...>, flash: %{"info" => "Welcome back!"}, live_action: :index} [2026-07-13 13:03:11.778] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.5ms idle=406.1ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:83 [2026-07-13 13:03:11.781] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=1.8ms idle=140.7ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 00:00:00]] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:86 [2026-07-13 13:03:11.794] [DEBUG] QUERY OK source="tms_terminals" db=12.6ms queue=0.5ms idle=2.8ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 INNER JOIN `tms_terminal_status_logs` AS t1 ON t1.`terminal_id` = t0.`id` WHERE (t1.`inserted_at` >= ?) [~N[2026-07-13 00:00:00]] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:92 [2026-07-13 13:03:11.803] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms queue=3.3ms idle=18.5ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE (t0.`installed_at` >= ?) [~U[2026-07-13 00:00:00Z]] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:101 [2026-07-13 13:03:11.804] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=9.5ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:140 [2026-07-13 13:03:11.806] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=1.4ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('connected','online','Online')) [] ↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:143 [2026-07-13 13:03:11.864] [DEBUG] QUERY OK source="tms_terminals" db=54.1ms queue=2.7ms idle=2.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:19 [2026-07-13 13:03:11.872] [DEBUG] QUERY OK source="ota_configurations" db=2.0ms queue=2.0ms idle=61.1ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 00:00:00Z], ~U[2026-07-13 01:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.874] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms queue=1.1ms idle=8.3ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 00:00:00Z], ~U[2026-07-13 01:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.875] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=2.4ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 01:00:00Z], ~U[2026-07-13 02:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.875] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms queue=0.1ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 01:00:00Z], ~U[2026-07-13 02:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.876] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 02:00:00Z], ~U[2026-07-13 03:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.877] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 02:00:00Z], ~U[2026-07-13 03:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.877] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.3ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 03:00:00Z], ~U[2026-07-13 04:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.878] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 03:00:00Z], ~U[2026-07-13 04:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.879] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.9ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 04:00:00Z], ~U[2026-07-13 05:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.880] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 04:00:00Z], ~U[2026-07-13 05:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.880] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 05:00:00Z], ~U[2026-07-13 06:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.881] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 05:00:00Z], ~U[2026-07-13 06:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.882] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 06:00:00Z], ~U[2026-07-13 07:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.882] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 06:00:00Z], ~U[2026-07-13 07:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.883] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=1.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 07:00:00Z], ~U[2026-07-13 08:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.884] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 07:00:00Z], ~U[2026-07-13 08:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.885] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=1.1ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 08:00:00Z], ~U[2026-07-13 09:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.885] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.2ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 08:00:00Z], ~U[2026-07-13 09:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.886] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 09:00:00Z], ~U[2026-07-13 10:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.887] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 09:00:00Z], ~U[2026-07-13 10:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.888] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.5ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 10:00:00Z], ~U[2026-07-13 11:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.889] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.3ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 10:00:00Z], ~U[2026-07-13 11:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.889] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=0.9ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 11:00:00Z], ~U[2026-07-13 12:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.890] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 11:00:00Z], ~U[2026-07-13 12:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.891] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 12:00:00Z], ~U[2026-07-13 13:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.892] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 12:00:00Z], ~U[2026-07-13 13:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.892] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms queue=0.1ms idle=1.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 13:00:00Z], ~U[2026-07-13 14:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.893] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms queue=0.1ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 13:00:00Z], ~U[2026-07-13 14:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.894] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.9ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 14:00:00Z], ~U[2026-07-13 15:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.894] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 14:00:00Z], ~U[2026-07-13 15:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.895] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 15:00:00Z], ~U[2026-07-13 16:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.896] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 15:00:00Z], ~U[2026-07-13 16:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.896] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 16:00:00Z], ~U[2026-07-13 17:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.897] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 16:00:00Z], ~U[2026-07-13 17:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.898] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 17:00:00Z], ~U[2026-07-13 18:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.898] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 17:00:00Z], ~U[2026-07-13 18:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.899] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 18:00:00Z], ~U[2026-07-13 19:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.899] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 18:00:00Z], ~U[2026-07-13 19:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.901] [DEBUG] QUERY OK source="ota_configurations" db=1.0ms idle=0.9ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 19:00:00Z], ~U[2026-07-13 20:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.901] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.4ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 19:00:00Z], ~U[2026-07-13 20:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.903] [DEBUG] QUERY OK source="ota_configurations" db=0.7ms queue=0.2ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 20:00:00Z], ~U[2026-07-13 21:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.903] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.6ms idle=1.4ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 20:00:00Z], ~U[2026-07-13 21:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.904] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=1.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 21:00:00Z], ~U[2026-07-13 22:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.905] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 21:00:00Z], ~U[2026-07-13 22:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.906] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=0.9ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 22:00:00Z], ~U[2026-07-13 23:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.907] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms queue=0.1ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 22:00:00Z], ~U[2026-07-13 23:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.908] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.4ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 23:00:00Z], ~U[2026-07-14 00:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:11.909] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 23:00:00Z], ~U[2026-07-14 00:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:11.962] [DEBUG] QUERY OK source="tms_terminals" db=52.1ms queue=0.5ms idle=1.1ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:11.909172Z], ~U[2026-07-13 12:33:11.909172Z], ~U[2026-07-13 12:03:11.909172Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:11.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.9ms queue=0.4ms idle=53.6ms SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-07-13 12:03:11]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531 [2026-07-13 13:03:11.987] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.5ms queue=0.4ms idle=14.4ms SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 13:02:11]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539 [2026-07-13 13:03:11.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.8ms queue=0.3ms idle=12.1ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:11]] ↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605 [2026-07-13 13:03:12.010] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.5ms queue=0.1ms idle=12.2ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:11]] ↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621 [2026-07-13 13:03:12.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms queue=0.4ms idle=12.2ms SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:11]] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647 [2026-07-13 13:03:12.024] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=13.4ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652 [2026-07-13 13:03:12.079] [DEBUG] QUERY OK source="tms_terminals" db=54.5ms idle=1.5ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:12.024840Z], ~U[2026-07-13 12:33:12.024840Z], ~U[2026-07-13 12:03:12.024840Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:12.147] [DEBUG] QUERY OK source="tms_terminals" db=66.9ms idle=55.3ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:12.079861Z], ~U[2026-07-13 12:33:12.079861Z], ~U[2026-07-13 12:03:12.079861Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:12.213] [DEBUG] QUERY OK source="tms_terminals" db=64.2ms idle=69.7ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:12.149094Z], ~U[2026-07-13 12:33:12.149094Z], ~U[2026-07-13 12:03:12.149094Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:12.266] [DEBUG] QUERY OK source="tms_terminals" db=52.3ms idle=67.1ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:12.214013Z], ~U[2026-07-13 12:33:12.214013Z], ~U[2026-07-13 12:03:12.214013Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:12.293] [INFO ] Sent 200 in 533ms [2026-07-13 13:03:13.199] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 33µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HT0qH3IUJz4EDAxRKyAyZVsFHww7DClH0MieAVjqsaJeyWY3-anBIKj5", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 13:03:13.437] [DEBUG] MOUNT PlatformWeb.DashboardLive Parameters: %{} Session: %{"_csrf_token" => "-pCz3BMOwmF4RwkVvdqNrGCr", "live_socket_id" => "users_sessions:fzEq8k-1XMHmcKoU6h_MXJpBafjYBrCjLDhd8YxZ6vc=", "user_token" => <<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>} [2026-07-13 13:03:13.438] [DEBUG] QUERY OK source="users_tokens" db=0.5ms idle=1676.5ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:03:13.438090Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-07-13 13:03:13.440] [DEBUG] QUERY OK source="users_tokens" db=0.8ms idle=1667.2ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:03:13.439060Z]] ↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:10 [2026-07-13 13:03:13.440] [DEBUG] Socket Assigns: %{__changed__: %{current_user: true}, current_user: #DaProductApp.Users.User<__meta__: #Ecto.Schema.Metadata<:loaded, "users">, id: 3, email: "demo@mercury.com", confirmed_at: nil, role: :superuser, name: nil, first_name: nil, last_name: nil, data: nil, permissions: #Ecto.Association.NotLoaded, roles: #Ecto.Association.NotLoaded, inserted_at: ~U[2025-05-12 07:36:10Z], updated_at: ~U[2026-03-13 10:38:22Z], ...>, flash: %{"info" => "Welcome back!"}, live_action: :index} [2026-07-13 13:03:13.441] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=800.6ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:83 [2026-07-13 13:03:13.442] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=58.0ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 00:00:00]] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:86 [2026-07-13 13:03:13.454] [DEBUG] QUERY OK source="tms_terminals" db=11.5ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 INNER JOIN `tms_terminal_status_logs` AS t1 ON t1.`terminal_id` = t0.`id` WHERE (t1.`inserted_at` >= ?) [~N[2026-07-13 00:00:00]] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:92 [2026-07-13 13:03:13.455] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.6ms idle=12.3ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE (t0.`installed_at` >= ?) [~U[2026-07-13 00:00:00Z]] ↳ TmsCore.TerminalManagement.get_dashboard_statistics/1, at: lib/tms_core/terminal_management.ex:101 [2026-07-13 13:03:13.456] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:140 [2026-07-13 13:03:13.456] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('connected','online','Online')) [] ↳ TmsCore.TerminalManagement.get_device_online_rate/0, at: lib/tms_core/terminal_management.ex:143 [2026-07-13 13:03:13.513] [DEBUG] QUERY OK source="tms_terminals" db=56.4ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.DashboardLive.mount/3, at: lib/platform_web/live/dashboard_live.ex:19 [2026-07-13 13:03:13.515] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=57.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 00:00:00Z], ~U[2026-07-13 01:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.516] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms idle=1.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 00:00:00Z], ~U[2026-07-13 01:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.516] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=1.2ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 01:00:00Z], ~U[2026-07-13 02:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.517] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 01:00:00Z], ~U[2026-07-13 02:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.518] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 02:00:00Z], ~U[2026-07-13 03:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.519] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.8ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 02:00:00Z], ~U[2026-07-13 03:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.520] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=1.4ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 03:00:00Z], ~U[2026-07-13 04:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.520] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 03:00:00Z], ~U[2026-07-13 04:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.521] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 04:00:00Z], ~U[2026-07-13 05:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.522] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 04:00:00Z], ~U[2026-07-13 05:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.522] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.6ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 05:00:00Z], ~U[2026-07-13 06:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.523] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 05:00:00Z], ~U[2026-07-13 06:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.524] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 06:00:00Z], ~U[2026-07-13 07:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.524] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 06:00:00Z], ~U[2026-07-13 07:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.526] [DEBUG] QUERY OK source="ota_configurations" db=0.8ms idle=1.1ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 07:00:00Z], ~U[2026-07-13 08:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.527] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms queue=0.2ms idle=1.5ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 07:00:00Z], ~U[2026-07-13 08:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.527] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=1.3ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 08:00:00Z], ~U[2026-07-13 09:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.528] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 08:00:00Z], ~U[2026-07-13 09:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.529] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.1ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 09:00:00Z], ~U[2026-07-13 10:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.529] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 09:00:00Z], ~U[2026-07-13 10:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.530] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 10:00:00Z], ~U[2026-07-13 11:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.532] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=1.5ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 10:00:00Z], ~U[2026-07-13 11:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.533] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=2.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 11:00:00Z], ~U[2026-07-13 12:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.534] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 11:00:00Z], ~U[2026-07-13 12:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.534] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms queue=0.1ms idle=1.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 12:00:00Z], ~U[2026-07-13 13:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.535] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.5ms queue=0.2ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 12:00:00Z], ~U[2026-07-13 13:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.536] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=1.2ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 13:00:00Z], ~U[2026-07-13 14:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.537] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 13:00:00Z], ~U[2026-07-13 14:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.537] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 14:00:00Z], ~U[2026-07-13 15:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.538] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 14:00:00Z], ~U[2026-07-13 15:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.538] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.7ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 15:00:00Z], ~U[2026-07-13 16:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.539] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.8ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 15:00:00Z], ~U[2026-07-13 16:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.541] [DEBUG] QUERY OK source="ota_configurations" db=1.0ms queue=0.2ms idle=1.2ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 16:00:00Z], ~U[2026-07-13 17:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.542] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms idle=2.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 16:00:00Z], ~U[2026-07-13 17:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.543] [DEBUG] QUERY OK source="ota_configurations" db=0.7ms idle=1.5ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 17:00:00Z], ~U[2026-07-13 18:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.544] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.8ms idle=1.2ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 17:00:00Z], ~U[2026-07-13 18:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.545] [DEBUG] QUERY OK source="ota_configurations" db=0.5ms idle=1.3ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 18:00:00Z], ~U[2026-07-13 19:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.546] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 18:00:00Z], ~U[2026-07-13 19:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.546] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 19:00:00Z], ~U[2026-07-13 20:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.547] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.3ms idle=0.9ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 19:00:00Z], ~U[2026-07-13 20:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.548] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 20:00:00Z], ~U[2026-07-13 21:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.548] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 20:00:00Z], ~U[2026-07-13 21:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.549] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.8ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 21:00:00Z], ~U[2026-07-13 22:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.549] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.2ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 21:00:00Z], ~U[2026-07-13 22:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.550] [DEBUG] QUERY OK source="ota_configurations" db=0.3ms idle=0.6ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 22:00:00Z], ~U[2026-07-13 23:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.552] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.9ms queue=0.3ms idle=1.1ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 22:00:00Z], ~U[2026-07-13 23:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.552] [DEBUG] QUERY OK source="ota_configurations" db=0.2ms idle=2.0ms SELECT count(o0.`id`) FROM `ota_configurations` AS o0 WHERE (((o0.`sent_at` >= ?) AND (o0.`sent_at` < ?)) AND (o0.`status` = 'acknowledged')) [~U[2026-07-13 23:00:00Z], ~U[2026-07-14 00:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:197 [2026-07-13 13:03:13.553] [DEBUG] QUERY OK source="tms_terminal_app_versions" db=0.4ms idle=0.7ms SELECT count(t0.`id`) FROM `tms_terminal_app_versions` AS t0 WHERE ((t0.`installed_at` >= ?) AND (t0.`installed_at` < ?)) [~U[2026-07-13 23:00:00Z], ~U[2026-07-14 00:00:00Z]] ↳ anonymous fn/1 in TmsCore.TerminalManagement.get_hourly_chart_data/0, at: lib/tms_core/terminal_management.ex:204 [2026-07-13 13:03:13.605] [DEBUG] QUERY OK source="tms_terminals" db=50.9ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:13.553564Z], ~U[2026-07-13 12:33:13.553564Z], ~U[2026-07-13 12:03:13.553564Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:13.617] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=51.9ms SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-07-13 12:03:13]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531 [2026-07-13 13:03:13.629] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=12.8ms SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 13:02:13]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539 [2026-07-13 13:03:13.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.6ms idle=12.8ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:13]] ↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605 [2026-07-13 13:03:13.652] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms queue=0.1ms idle=0.3ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:13]] ↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621 [2026-07-13 13:03:13.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.4ms idle=6.1ms SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:13]] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647 [2026-07-13 13:03:13.667] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=14.0ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652 [2026-07-13 13:03:13.719] [DEBUG] QUERY OK source="tms_terminals" db=51.3ms idle=1.5ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:13.667799Z], ~U[2026-07-13 12:33:13.667799Z], ~U[2026-07-13 12:03:13.667799Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:13.774] [DEBUG] QUERY OK source="tms_terminals" db=54.3ms idle=52.2ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:13.719667Z], ~U[2026-07-13 12:33:13.719667Z], ~U[2026-07-13 12:03:13.719667Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:13.824] [DEBUG] QUERY OK source="tms_terminals" db=49.6ms idle=55.3ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:13.774508Z], ~U[2026-07-13 12:33:13.774508Z], ~U[2026-07-13 12:03:13.774508Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:13.875] [DEBUG] QUERY OK source="tms_terminals" db=50.3ms idle=50.7ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:13.824736Z], ~U[2026-07-13 12:33:13.824736Z], ~U[2026-07-13 12:03:13.824736Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:13.875] [DEBUG] Replied in 437ms [2026-07-13 13:03:43.926] [DEBUG] QUERY OK source="tms_terminals" db=48.9ms idle=492.6ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:43.877511Z], ~U[2026-07-13 12:33:43.877511Z], ~U[2026-07-13 12:03:43.877511Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:43.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms idle=194.8ms SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-07-13 12:03:43]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531 [2026-07-13 13:03:43.954] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=14.6ms SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 13:02:43]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539 [2026-07-13 13:03:43.966] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=13.9ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:43]] ↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605 [2026-07-13 13:03:43.978] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms idle=12.7ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:43]] ↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621 [2026-07-13 13:03:43.989] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.0ms idle=12.4ms SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:03:43]] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647 [2026-07-13 13:03:43.990] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=10.7ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652 [2026-07-13 13:03:44.038] [DEBUG] QUERY OK source="tms_terminals" db=47.5ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:43.990240Z], ~U[2026-07-13 12:33:43.990240Z], ~U[2026-07-13 12:03:43.990240Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:44.086] [DEBUG] QUERY OK source="tms_terminals" db=47.4ms idle=48.4ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:44.038313Z], ~U[2026-07-13 12:33:44.038313Z], ~U[2026-07-13 12:03:44.038313Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:44.136] [DEBUG] QUERY OK source="tms_terminals" db=49.7ms idle=48.7ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:44.086501Z], ~U[2026-07-13 12:33:44.086501Z], ~U[2026-07-13 12:03:44.086501Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:03:44.188] [DEBUG] QUERY OK source="tms_terminals" db=51.2ms idle=51.1ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:58:44.136878Z], ~U[2026-07-13 12:33:44.136878Z], ~U[2026-07-13 12:03:44.136878Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:04:14.238] [DEBUG] QUERY OK source="tms_terminals" db=47.2ms idle=1349.4ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:59:14.190811Z], ~U[2026-07-13 12:34:14.190811Z], ~U[2026-07-13 12:04:14.190811Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:04:14.251] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.8ms idle=395.3ms SELECT DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i'), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) GROUP BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') ORDER BY DATE_FORMAT(t0.`inserted_at`, '%Y-%m-%d %H:%i') [~N[2026-07-13 12:04:14]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1531 [2026-07-13 13:04:14.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.1ms queue=0.1ms idle=13.9ms SELECT count(DISTINCT t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 13:03:14]] ↳ TmsCore.TerminalManagement.get_connection_status_summary/0, at: lib/tms_core/terminal_management.ex:1539 [2026-07-13 13:04:14.283] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.2ms queue=0.1ms idle=16.1ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:04:14]] ↳ TmsCore.TerminalManagement.get_parameter_push_success_rate/1, at: lib/tms_core/terminal_management.ex:1605 [2026-07-13 13:04:14.295] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=16.1ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:04:14]] ↳ TmsCore.TerminalManagement.get_average_response_time/1, at: lib/tms_core/terminal_management.ex:1621 [2026-07-13 13:04:14.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.0ms idle=12.1ms SELECT count(t0.`terminal_id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`inserted_at` >= ?) [~N[2026-07-13 12:04:14]] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1647 [2026-07-13 13:04:14.306] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=10.8ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.calculate_uptime_percentage/1, at: lib/tms_core/terminal_management.ex:1652 [2026-07-13 13:04:14.352] [DEBUG] QUERY OK source="tms_terminals" db=45.4ms idle=1.3ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:59:14.306811Z], ~U[2026-07-13 12:34:14.306811Z], ~U[2026-07-13 12:04:14.306811Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:04:14.403] [DEBUG] QUERY OK source="tms_terminals" db=50.1ms idle=46.3ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:59:14.352835Z], ~U[2026-07-13 12:34:14.352835Z], ~U[2026-07-13 12:04:14.352835Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:04:14.453] [DEBUG] QUERY OK source="tms_terminals" db=49.3ms idle=51.3ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:59:14.403620Z], ~U[2026-07-13 12:34:14.403620Z], ~U[2026-07-13 12:04:14.403620Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:04:14.501] [DEBUG] QUERY OK source="tms_terminals" db=47.1ms idle=50.5ms SELECT t0.`id`, t0.`serial_number`, s1.`last_seen`, CASE WHEN s1.`last_seen` > ? THEN 'healthy' WHEN s1.`last_seen` > ? THEN 'warning' WHEN s1.`last_seen` > ? THEN 'critical' ELSE 'offline' END FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` [~U[2026-07-13 12:59:14.453620Z], ~U[2026-07-13 12:34:14.453620Z], ~U[2026-07-13 12:04:14.453620Z]] ↳ TmsCore.TerminalManagement.get_device_health_metrics/0, at: lib/tms_core/terminal_management.ex:1499 [2026-07-13 13:04:15.697] [WARN ] navigate event to "http://demo.ctrmv.com:4059/admin/settlements/tid-master" failed because you are redirecting across live_sessions. A full page reload will be performed instead [2026-07-13 13:04:16.136] [INFO ] GET /admin/settlements/tid-master [2026-07-13 13:04:16.137] [DEBUG] Processing with PlatformWeb.SettlementLive.TidMasterBrowser.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-07-13 13:04:16.138] [DEBUG] QUERY OK source="users_tokens" db=1.2ms idle=1453.4ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:04:16.137333Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 13:04:16.161] [DEBUG] QUERY OK source="tid_masters" db=3.2ms queue=2.7ms idle=1310.3ms SELECT count(t0.`id`) FROM `tid_masters` AS t0 [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.load_rows/1, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:413 [2026-07-13 13:04:16.163] [DEBUG] QUERY OK source="tid_masters" db=0.4ms queue=0.9ms idle=313.3ms SELECT t0.`id`, t0.`mms_user_id`, t0.`mid`, t0.`store_id`, t0.`merchant_ref_number`, t0.`tid`, t0.`qr_id`, t0.`merchant_name_legal`, t0.`merchant_name_dba`, t0.`registered_mobile`, t0.`registered_email`, t0.`mcc_code`, t0.`mcc_description`, t0.`bank_code`, t0.`bank_name`, t0.`bank_account_number`, t0.`iban`, t0.`virtual_iban`, t0.`enabled_schemes`, t0.`mdr_rates`, t0.`onboarding_date`, t0.`contract_approved_at`, t0.`onboarding_source`, t0.`onboarding_id`, t0.`last_transaction_date`, t0.`last_transaction_amount`, t0.`mms_synced_at`, t0.`status`, t0.`spare_fields`, t0.`inserted_at`, t0.`updated_at` FROM `tid_masters` AS t0 ORDER BY t0.`merchant_name_legal`, t0.`mid` LIMIT 500 [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.load_rows/1, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:419 [2026-07-13 13:04:16.164] [DEBUG] QUERY OK source="tid_masters" db=0.5ms queue=0.5ms idle=2.2ms SELECT DISTINCT t0.`bank_code` FROM `tid_masters` AS t0 WHERE (NOT (t0.`bank_code` IS NULL)) ORDER BY t0.`bank_code` [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:52 [2026-07-13 13:04:16.165] [DEBUG] QUERY OK source="tid_masters" db=0.3ms queue=0.3ms idle=1.7ms SELECT DISTINCT t0.`mcc_code` FROM `tid_masters` AS t0 WHERE (NOT (t0.`mcc_code` IS NULL)) ORDER BY t0.`mcc_code` [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:53 [2026-07-13 13:04:16.166] [DEBUG] QUERY OK source="tid_masters" db=0.3ms queue=0.5ms idle=1.0ms SELECT DISTINCT t0.`onboarding_source` FROM `tid_masters` AS t0 WHERE (NOT (t0.`onboarding_source` IS NULL)) ORDER BY t0.`onboarding_source` [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:54 [2026-07-13 13:04:16.171] [INFO ] Sent 200 in 35ms [2026-07-13 13:04:17.669] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 31µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Sho6MGUqJCgQVCtePw0hPQ8WPH4EBAsigjyJVhigg9mjmzJkyrM0vCHP", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 13:04:17.892] [DEBUG] MOUNT PlatformWeb.SettlementLive.TidMasterBrowser Parameters: %{} Session: %{"_csrf_token" => "-pCz3BMOwmF4RwkVvdqNrGCr", "live_socket_id" => "users_sessions:fzEq8k-1XMHmcKoU6h_MXJpBafjYBrCjLDhd8YxZ6vc=", "user_token" => <<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>} [2026-07-13 13:04:17.893] [DEBUG] QUERY OK source="users_tokens" db=0.6ms idle=1209.1ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:04:17.893103Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-07-13 13:04:17.894] [DEBUG] QUERY OK source="tid_masters" db=0.5ms idle=508.9ms SELECT count(t0.`id`) FROM `tid_masters` AS t0 [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.load_rows/1, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:413 [2026-07-13 13:04:17.895] [DEBUG] QUERY OK source="tid_masters" db=0.4ms idle=37.9ms SELECT t0.`id`, t0.`mms_user_id`, t0.`mid`, t0.`store_id`, t0.`merchant_ref_number`, t0.`tid`, t0.`qr_id`, t0.`merchant_name_legal`, t0.`merchant_name_dba`, t0.`registered_mobile`, t0.`registered_email`, t0.`mcc_code`, t0.`mcc_description`, t0.`bank_code`, t0.`bank_name`, t0.`bank_account_number`, t0.`iban`, t0.`virtual_iban`, t0.`enabled_schemes`, t0.`mdr_rates`, t0.`onboarding_date`, t0.`contract_approved_at`, t0.`onboarding_source`, t0.`onboarding_id`, t0.`last_transaction_date`, t0.`last_transaction_amount`, t0.`mms_synced_at`, t0.`status`, t0.`spare_fields`, t0.`inserted_at`, t0.`updated_at` FROM `tid_masters` AS t0 ORDER BY t0.`merchant_name_legal`, t0.`mid` LIMIT 500 [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.load_rows/1, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:419 [2026-07-13 13:04:17.896] [DEBUG] QUERY OK source="tid_masters" db=0.5ms idle=1.0ms SELECT DISTINCT t0.`bank_code` FROM `tid_masters` AS t0 WHERE (NOT (t0.`bank_code` IS NULL)) ORDER BY t0.`bank_code` [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:52 [2026-07-13 13:04:17.897] [DEBUG] QUERY OK source="tid_masters" db=0.8ms idle=1.0ms SELECT DISTINCT t0.`mcc_code` FROM `tid_masters` AS t0 WHERE (NOT (t0.`mcc_code` IS NULL)) ORDER BY t0.`mcc_code` [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:53 [2026-07-13 13:04:17.897] [DEBUG] QUERY OK source="tid_masters" db=0.2ms idle=1.2ms SELECT DISTINCT t0.`onboarding_source` FROM `tid_masters` AS t0 WHERE (NOT (t0.`onboarding_source` IS NULL)) ORDER BY t0.`onboarding_source` [] ↳ PlatformWeb.SettlementLive.TidMasterBrowser.mount/3, at: lib/platform_web/live/settlement_live/tid_master_browser.ex:54 [2026-07-13 13:04:17.898] [DEBUG] Replied in 5ms [2026-07-13 13:04:17.898] [DEBUG] HANDLE PARAMS in PlatformWeb.SettlementLive.TidMasterBrowser Parameters: %{} [2026-07-13 13:04:17.898] [DEBUG] Replied in 76µs [2026-07-13 13:04:23.024] [WARN ] navigate event to "http://demo.ctrmv.com:4059/analytics" failed because you are redirecting across live_sessions. A full page reload will be performed instead [2026-07-13 13:04:23.340] [INFO ] GET /analytics [2026-07-13 13:04:23.340] [DEBUG] Processing with PlatformWeb.AnalyticsLive.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-07-13 13:04:23.341] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=1656.9ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:04:23.340927Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 13:04:23.351] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=1.3ms idle=1482.6ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1725 [2026-07-13 13:04:23.404] [DEBUG] QUERY OK db=48.4ms queue=0.5ms idle=484.5ms SELECT count(s0.`terminal_id`) FROM (SELECT DISTINCT st0.`terminal_id` AS `terminal_id` FROM `tms_terminal_status_logs` AS st0 WHERE ((st0.`inserted_at` >= ?) AND (st0.`inserted_at` <= ?))) AS s0 [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1731 [2026-07-13 13:04:23.405] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.4ms idle=53.8ms SELECT t0.`status`, count(t0.`id`) FROM `tms_terminals` AS t0 GROUP BY t0.`status` [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1742 [2026-07-13 13:04:23.406] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=0.2ms idle=1.4ms SELECT t0.`model`, count(t0.`id`) FROM `tms_terminals` AS t0 GROUP BY t0.`model` ORDER BY count(t0.`id`) DESC [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1749 [2026-07-13 13:04:23.407] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.2ms idle=1.0ms SELECT t0.`vendor`, count(t0.`id`) FROM `tms_terminals` AS t0 GROUP BY t0.`vendor` ORDER BY count(t0.`id`) DESC [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1755 [2026-07-13 13:04:23.408] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1760 [2026-07-13 13:04:23.409] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=0.4ms idle=1.0ms SELECT DATE(t0.`inserted_at`), count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY DATE(t0.`inserted_at`) ORDER BY DATE(t0.`inserted_at`) [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1781 [2026-07-13 13:04:23.429] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.2ms queue=0.2ms idle=1.3ms SELECT DATE(t0.`inserted_at`), COUNT(DISTINCT t0.`terminal_id`), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY DATE(t0.`inserted_at`) ORDER BY DATE(t0.`inserted_at`) [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1794 [2026-07-13 13:04:23.432] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=1.0ms idle=20.5ms SELECT CONCAT(YEAR(t0.`inserted_at`), '-W', LPAD(WEEK(t0.`inserted_at`, 1), 2, '0')), count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY CONCAT(YEAR(t0.`inserted_at`), '-W', LPAD(WEEK(t0.`inserted_at`, 1), 2, '0')) ORDER BY CONCAT(YEAR(t0.`inserted_at`), '-W', LPAD(WEEK(t0.`inserted_at`, 1), 2, '0')) [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1797 [2026-07-13 13:04:23.436] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=3.3ms idle=3.6ms SELECT CONCAT(YEAR(t0.`inserted_at`), '-', LPAD(MONTH(t0.`inserted_at`), 2, '0')), count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY CONCAT(YEAR(t0.`inserted_at`), '-', LPAD(MONTH(t0.`inserted_at`), 2, '0')) ORDER BY CONCAT(YEAR(t0.`inserted_at`), '-', LPAD(MONTH(t0.`inserted_at`), 2, '0')) [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1798 [2026-07-13 13:04:23.438] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.9ms idle=4.7ms SELECT t0.`area`, count(t0.`id`), sum(CASE WHEN t0.`status` IN ('online', 'Online', 'connected') THEN 1 ELSE 0 END) FROM `tms_terminals` AS t0 WHERE (NOT (t0.`area` IS NULL)) GROUP BY t0.`area` ORDER BY count(t0.`id`) DESC [] ↳ TmsCore.TerminalManagement.get_geographic_analytics/3, at: lib/tms_core/terminal_management.ex:1825 [2026-07-13 13:04:23.440] [DEBUG] QUERY OK source="ota_configurations" db=0.4ms queue=0.7ms idle=2.1ms SELECT o0.`status`, count(o0.`id`) FROM `ota_configurations` AS o0 WHERE ((o0.`sent_at` >= ?) AND (o0.`sent_at` <= ?)) GROUP BY o0.`status` [~U[2026-06-13 13:04:23Z], ~U[2026-07-13 13:04:23Z]] ↳ TmsCore.TerminalManagement.get_ota_update_analytics/2, at: lib/tms_core/terminal_management.ex:2078 [2026-07-13 13:04:23.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms queue=1.4ms idle=1.7ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) [~N[2026-06-13 13:04:23], ~N[2026-07-13 13:04:23]] ↳ TmsCore.TerminalManagement.get_system_health_analytics/2, at: lib/tms_core/terminal_management.ex:2099 [2026-07-13 13:04:23.508] [DEBUG] QUERY OK source="tms_terminals" db=54.7ms idle=14.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.AnalyticsLive.load_analytics_data/1, at: lib/platform_web/live/analytics_live.ex:145 [2026-07-13 13:04:23.540] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=26.9ms queue=0.4ms idle=59.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.546] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms queue=0.1ms idle=32.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.547] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms queue=0.4ms idle=6.3ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [43039] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.586] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=37.7ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=38.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.593] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.0ms queue=0.1ms idle=0.5ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [43758] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.596] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=0.3ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.597] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.599] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms queue=0.3ms idle=0.5ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [24538] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.602] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.603] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=0.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [6171] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.604] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.606] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms queue=0.4ms idle=0.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5453] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.607] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.608] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=0.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5486] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.610] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.611] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.7ms idle=0.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [7335] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.614] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms queue=0.1ms idle=0.3ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5495] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.615] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.616] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.617] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.0ms idle=0.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5499] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.634] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.635] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=2.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [15230] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.660] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=25.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.665] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.1ms idle=4.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [46845] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.667] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5539] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.696] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=29.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.697] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=29.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [39753] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=14.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.717] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=4.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [23998] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.734] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.735] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=1.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [43358] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.737] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.737] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [6790] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.739] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:23.740] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms queue=0.6ms idle=1.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [13926] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.176] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=435.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.177] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.7ms idle=302.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [38945] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.180] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.183] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms queue=0.9ms idle=2.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [8788] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.184] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.185] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.186] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [8760] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=13.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.203] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=2.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [46865] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=14.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.219] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [28095] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.221] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.222] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [14055] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=153.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.377] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=154.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [36748] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.379] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.380] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.2ms idle=1.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [15146] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.386] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [18630] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=72.5ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=73.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.466] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.9ms idle=6.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [22345] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.469] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [21561] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.9ms queue=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.494] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=21.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.495] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=4.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [25674] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.503] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.507] [DEBUG] QUERY OK source="tms_terminal_status_items" db=2.4ms queue=0.8ms idle=1.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [40151] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.514] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.515] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.516] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [30717] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.557] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=41.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.561] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=41.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.562] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=4.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41532] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.563] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.563] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.564] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [21678] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.569] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.6ms idle=0.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [24914] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.576] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.577] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.578] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [34584] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.580] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.580] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [32283] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.582] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.583] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41580] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.584] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.586] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [33445] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.587] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [37565] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.592] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41285] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.600] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.603] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41238] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.610] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.9ms idle=6.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [46441] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.612] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=1.9ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1725 [2026-07-13 13:04:24.662] [DEBUG] QUERY OK db=49.9ms queue=0.1ms idle=1.4ms SELECT count(s0.`terminal_id`) FROM (SELECT DISTINCT st0.`terminal_id` AS `terminal_id` FROM `tms_terminal_status_logs` AS st0 WHERE ((st0.`inserted_at` >= ?) AND (st0.`inserted_at` <= ?))) AS s0 [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1731 [2026-07-13 13:04:24.663] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=50.7ms SELECT t0.`status`, count(t0.`id`) FROM `tms_terminals` AS t0 GROUP BY t0.`status` [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1742 [2026-07-13 13:04:24.664] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=1.4ms SELECT t0.`model`, count(t0.`id`) FROM `tms_terminals` AS t0 GROUP BY t0.`model` ORDER BY count(t0.`id`) DESC [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1749 [2026-07-13 13:04:24.665] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1.1ms SELECT t0.`vendor`, count(t0.`id`) FROM `tms_terminals` AS t0 GROUP BY t0.`vendor` ORDER BY count(t0.`id`) DESC [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1755 [2026-07-13 13:04:24.665] [DEBUG] QUERY OK source="tms_terminals" db=0.2ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.get_device_summary_analytics/2, at: lib/tms_core/terminal_management.ex:1760 [2026-07-13 13:04:24.666] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=0.6ms SELECT DATE(t0.`inserted_at`), count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY DATE(t0.`inserted_at`) ORDER BY DATE(t0.`inserted_at`) [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1781 [2026-07-13 13:04:24.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.2ms idle=1.0ms SELECT DATE(t0.`inserted_at`), COUNT(DISTINCT t0.`terminal_id`), count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY DATE(t0.`inserted_at`) ORDER BY DATE(t0.`inserted_at`) [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1794 [2026-07-13 13:04:24.685] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=17.8ms SELECT CONCAT(YEAR(t0.`inserted_at`), '-W', LPAD(WEEK(t0.`inserted_at`, 1), 2, '0')), count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY CONCAT(YEAR(t0.`inserted_at`), '-W', LPAD(WEEK(t0.`inserted_at`, 1), 2, '0')) ORDER BY CONCAT(YEAR(t0.`inserted_at`), '-W', LPAD(WEEK(t0.`inserted_at`, 1), 2, '0')) [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1797 [2026-07-13 13:04:24.687] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1.7ms SELECT CONCAT(YEAR(t0.`inserted_at`), '-', LPAD(MONTH(t0.`inserted_at`), 2, '0')), count(t0.`id`) FROM `tms_terminals` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) GROUP BY CONCAT(YEAR(t0.`inserted_at`), '-', LPAD(MONTH(t0.`inserted_at`), 2, '0')) ORDER BY CONCAT(YEAR(t0.`inserted_at`), '-', LPAD(MONTH(t0.`inserted_at`), 2, '0')) [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_device_trend_analytics/2, at: lib/tms_core/terminal_management.ex:1798 [2026-07-13 13:04:24.687] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.4ms SELECT t0.`area`, count(t0.`id`), sum(CASE WHEN t0.`status` IN ('online', 'Online', 'connected') THEN 1 ELSE 0 END) FROM `tms_terminals` AS t0 WHERE (NOT (t0.`area` IS NULL)) GROUP BY t0.`area` ORDER BY count(t0.`id`) DESC [] ↳ TmsCore.TerminalManagement.get_geographic_analytics/3, at: lib/tms_core/terminal_management.ex:1825 [2026-07-13 13:04:24.688] [DEBUG] QUERY OK source="ota_configurations" db=0.6ms idle=0.9ms SELECT o0.`status`, count(o0.`id`) FROM `ota_configurations` AS o0 WHERE ((o0.`sent_at` >= ?) AND (o0.`sent_at` <= ?)) GROUP BY o0.`status` [~U[2026-06-13 13:04:24Z], ~U[2026-07-13 13:04:24Z]] ↳ TmsCore.TerminalManagement.get_ota_update_analytics/2, at: lib/tms_core/terminal_management.ex:2078 [2026-07-13 13:04:24.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms idle=1.0ms SELECT count(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE ((t0.`inserted_at` >= ?) AND (t0.`inserted_at` <= ?)) [~N[2026-06-13 13:04:24], ~N[2026-07-13 13:04:24]] ↳ TmsCore.TerminalManagement.get_system_health_analytics/2, at: lib/tms_core/terminal_management.ex:2099 [2026-07-13 13:04:24.754] [DEBUG] QUERY OK source="tms_terminals" db=53.7ms queue=0.1ms idle=12.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.AnalyticsLive.load_analytics_data/1, at: lib/platform_web/live/analytics_live.ex:145 [2026-07-13 13:04:24.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=28.1ms idle=54.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.789] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms queue=0.6ms idle=29.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.790] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=6.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [43039] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.820] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=29.9ms queue=0.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.825] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=30.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.826] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=4.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [43758] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.829] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.831] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [24538] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.833] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.834] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.834] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.2ms idle=1.3ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [6171] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.835] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.836] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.836] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=0.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5453] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.838] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=0.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5486] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.839] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.840] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.841] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [7335] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.843] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.844] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.844] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5495] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.845] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.846] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.847] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5499] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.859] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.861] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=12.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.862] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [15230] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.884] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.890] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=4.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [46845] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.891] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.892] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [5539] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=32.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.926] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=33.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [39753] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.945] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=15.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.946] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=3.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [23998] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.962] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.965] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=16.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.966] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=3.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [43358] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.966] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.968] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [6790] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.969] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.970] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:24.970] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [13926] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.442] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=470.7ms queue=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.445] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.6ms idle=472.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [38945] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.448] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms queue=0.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms queue=0.1ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.454] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.7ms idle=6.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [8788] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.460] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.464] [DEBUG] QUERY OK source="tms_terminal_status_items" db=3.0ms idle=1.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [8760] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.478] [INFO ] GET /terminals [2026-07-13 13:04:25.478] [DEBUG] Processing with PlatformWeb.TerminalLive.Index.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-07-13 13:04:25.479] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.0ms queue=0.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.481] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.481] [DEBUG] QUERY OK source="users_tokens" db=2.3ms idle=1795.2ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:04:25.479093Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-07-13 13:04:25.482] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=2.3ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [46865] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.504] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms queue=0.1ms idle=17.9ms 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 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-07-13 13:04:25.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.509] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.510] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms queue=0.1ms idle=4.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [28095] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.512] [DEBUG] QUERY OK source="app_packages" db=1.2ms queue=1.1ms idle=0.6ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-07-13 13:04:25.512] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.514] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.515] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [14055] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.536] [DEBUG] QUERY OK source="tms_terminals" db=6.2ms queue=1.8ms idle=12.9ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-07-13 13:04:25.540] [DEBUG] QUERY OK source="terminal_groups" db=0.6ms queue=0.7ms idle=2.0ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [42] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-07-13 13:04:25.544] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=0.2ms 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 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:25.582] [INFO ] Sent 200 in 104ms [2026-07-13 13:04:25.672] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=156.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.673] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.7ms idle=130.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [36748] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.675] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.676] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.677] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=0.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [15146] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.678] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.680] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.680] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [18630] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=70.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.757] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=71.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.759] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.3ms idle=6.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [22345] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.761] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.761] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [21561] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.786] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=21.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.787] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=3.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [25674] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.795] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.796] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.797] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [40151] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.805] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [30717] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.845] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=39.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.849] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=40.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.850] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=4.9ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41532] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.851] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.852] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.853] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [21678] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.857] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.859] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=1.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [24914] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.869] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.0ms idle=1.5ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [34584] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.874] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [32283] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.876] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.877] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.6ms idle=2.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41580] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.879] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.880] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.881] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms idle=0.5ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [33445] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.882] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.883] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.3ms queue=0.5ms idle=1.7ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [37565] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.888] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41285] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.891] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.5ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.893] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [41238] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE ((t0.`terminal_id` = ?) AND t1.`itemkey` IN ('latitude','longitude')) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.901] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.1ms idle=7.3ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` = ?) ORDER BY t0.`status_log_id` [46441] ↳ TmsCore.TerminalManagement.get_latest_terminal_location/1, at: lib/tms_core/terminal_management.ex:550 [2026-07-13 13:04:25.907] [INFO ] Sent 200 in 2566ms [2026-07-13 13:04:26.448] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 25µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FRgwT1Y7PAAkWnNCEQ4vOiFWACgGAG4o8hs5eyqOS75vCyDlW2qftG-Z", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 13:04:26.623] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index Parameters: %{} Session: %{"_csrf_token" => "-pCz3BMOwmF4RwkVvdqNrGCr", "live_socket_id" => "users_sessions:fzEq8k-1XMHmcKoU6h_MXJpBafjYBrCjLDhd8YxZ6vc=", "user_token" => <<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>} [2026-07-13 13:04:26.624] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=1940.1ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 13:04:26.623728Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-07-13 13:04:26.626] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=725.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 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-07-13 13:04:26.628] [DEBUG] QUERY OK source="app_packages" db=0.4ms idle=725.8ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-07-13 13:04:26.628] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=1.8ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-07-13 13:04:26.630] [DEBUG] QUERY OK source="terminal_groups" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [42] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-07-13 13:04:26.630] [DEBUG] Replied in 6ms [2026-07-13 13:04:26.630] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:26.631] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=1.7ms 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 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:26.631] [DEBUG] Replied in 1ms [2026-07-13 13:04:30.917] [DEBUG] HANDLE EVENT "set_status_tab" in PlatformWeb.TerminalLive.Index Parameters: %{"status" => "online", "value" => ""} [2026-07-13 13:04:30.920] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.7ms idle=533.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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:497 [2026-07-13 13:04:30.920] [DEBUG] Replied in 3ms [2026-07-13 13:04:32.461] [DEBUG] HANDLE EVENT "show_terminal_details" in PlatformWeb.TerminalLive.Index Parameters: %{"serial_number" => "98250623730001"} [2026-07-13 13:04:32.475] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms queue=1.1ms idle=564.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 10 [19] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:32.477] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms queue=0.5ms idle=91.2ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?)) ORDER BY t0.`status_log_id` [47062, 47063, 47064, 47067, 47069, 47081, 47082, 47090, 47091, 47121] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:32.478] [DEBUG] Replied in 16ms [2026-07-13 13:04:40.861] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.TerminalLive.Index Parameters: %{"value" => ""} [2026-07-13 13:04:40.861] [DEBUG] Replied in 239µs [2026-07-13 13:04:40.862] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:40.863] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=939.3ms 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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:40.863] [DEBUG] Replied in 1ms [2026-07-13 13:04:41.070] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:41.070] [DEBUG] Replied in 176µs [2026-07-13 13:04:41.070] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:41.071] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=207.3ms 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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:41.072] [DEBUG] Replied in 1ms [2026-07-13 13:04:42.596] [DEBUG] HANDLE EVENT "show_terminal_details" in PlatformWeb.TerminalLive.Index Parameters: %{"serial_number" => "98250623730001"} [2026-07-13 13:04:42.611] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.5ms idle=669.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 10 [19] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:42.613] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.8ms queue=0.5ms idle=226.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?)) ORDER BY t0.`status_log_id` [47062, 47063, 47064, 47067, 47069, 47081, 47082, 47090, 47091, 47121] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:42.613] [DEBUG] Replied in 17ms [2026-07-13 13:04:42.789] [DEBUG] HANDLE EVENT "show_terminal_details" in PlatformWeb.TerminalLive.Index Parameters: %{"serial_number" => "98250623730001"} [2026-07-13 13:04:42.802] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.2ms idle=178.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 10 [19] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:42.804] [DEBUG] QUERY OK source="tms_terminal_status_items" db=1.1ms queue=0.4ms idle=189.8ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?)) ORDER BY t0.`status_log_id` [47062, 47063, 47064, 47067, 47069, 47081, 47082, 47090, 47091, 47121] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:42.805] [DEBUG] Replied in 16ms [2026-07-13 13:04:43.765] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:43.765] [DEBUG] Replied in 206µs [2026-07-13 13:04:43.765] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:43.766] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=961.3ms 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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:43.767] [DEBUG] Replied in 1ms [2026-07-13 13:04:43.980] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:43.980] [DEBUG] Replied in 193µs [2026-07-13 13:04:43.980] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:43.982] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=214.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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:43.982] [DEBUG] Replied in 1ms [2026-07-13 13:04:44.581] [DEBUG] HANDLE EVENT "show_terminal_details" in PlatformWeb.TerminalLive.Index Parameters: %{"serial_number" => "98250623730001"} [2026-07-13 13:04:44.594] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.0ms idle=646.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 10 [19] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:44.596] [DEBUG] QUERY OK source="tms_terminal_status_items" db=0.9ms queue=0.6ms idle=612.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at`, t0.`status_log_id` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?)) ORDER BY t0.`status_log_id` [47062, 47063, 47064, 47067, 47069, 47081, 47082, 47090, 47091, 47121] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:150 [2026-07-13 13:04:44.596] [DEBUG] Replied in 14ms [2026-07-13 13:04:45.772] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:45.772] [DEBUG] Replied in 251µs [2026-07-13 13:04:45.772] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:45.773] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1176.7ms 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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:45.773] [DEBUG] Replied in 1ms [2026-07-13 13:04:46.012] [DEBUG] HANDLE EVENT "close_slide_over" in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:46.012] [DEBUG] Replied in 219µs [2026-07-13 13:04:46.012] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 13:04:46.013] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=239.3ms 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.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 13:04:46.013] [DEBUG] Replied in 1ms [2026-07-13 13:04:46.740] [DEBUG] HANDLE EVENT "set_status_tab" in PlatformWeb.TerminalLive.Index Parameters: %{"status" => "offline", "value" => ""} [2026-07-13 13:04:46.742] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.8ms idle=801.7ms 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.`status` IN ('offline','disconnected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:497 [2026-07-13 13:04:46.743] [DEBUG] Replied in 2ms [2026-07-13 13:04:52.253] [DEBUG] HANDLE EVENT "set_status_tab" in PlatformWeb.TerminalLive.Index Parameters: %{"status" => "all", "value" => ""} [2026-07-13 13:04:52.254] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1301.2ms 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 [] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:497 [2026-07-13 13:04:52.256] [DEBUG] Replied in 2ms [2026-07-13 13:05:11.883] [DEBUG] HANDLE EVENT "set_status_tab" in PlatformWeb.TerminalLive.Index Parameters: %{"status" => "offline", "value" => ""} [2026-07-13 13:05:11.886] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.8ms idle=1487.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.`status` IN ('offline','disconnected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:497 [2026-07-13 13:05:11.886] [DEBUG] Replied in 3ms [2026-07-13 13:07:28.295] [INFO ] Starting scheduled rule validation [2026-07-13 13:07:28.295] [DEBUG] Validating missing assignments [2026-07-13 13:07:28.297] [DEBUG] QUERY OK source="terminal_group_rules" db=1.2ms queue=0.1ms idle=886.9ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 13:07:28.298] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=817.9ms 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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 13:07:28.299] [DEBUG] Re-applied 0 rules during validation [2026-07-13 13:07:28.299] [DEBUG] Validating invalid assignments [2026-07-13 13:07:28.299] [DEBUG] Validating rule consistency [2026-07-13 13:07:28.299] [DEBUG] Updating group terminal counts [2026-07-13 13:07:28.300] [DEBUG] QUERY OK source="terminal_groups" db=0.7ms idle=2.5ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 13:07:28.301] [DEBUG] QUERY OK source="terminal_groups" db=0.5ms idle=2.2ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 13:07:28.302] [DEBUG] QUERY OK source="terminal_groups" db=0.5ms idle=0.9ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 13:07:28.303] [DEBUG] QUERY OK source="terminal_group_rules" db=0.5ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 13:07:28.303] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 13:07:28.304] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.6ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 13:07:28.305] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms idle=1.0ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 13:07:28.306] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.5ms idle=0.9ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 13:07:28.306] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 13:07:28.306] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 13:07:32.313] [INFO ] Running offline device check... [2026-07-13 13:07:32.313] [INFO ] Starting offline device check... [2026-07-13 13:07:32.314] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1822.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:07:32.323] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=821.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.328] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.329] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.331] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.340] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.341] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.347] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.351] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.352] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.354] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.366] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.388] [DEBUG] QUERY OK source="tms_terminals" db=20.2ms idle=13.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:07:32], 19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 13:07:32.388] [INFO ] Terminal 98250623730001 back online [2026-07-13 13:07:32.389] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=22.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.390] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.393] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.408] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=12.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.409] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.420] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.425] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.426] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.426] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.427] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.430] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.431] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.432] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.433] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:07:32.435] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 13:07:32.436] [INFO ] Offline device check completed successfully [2026-07-13 13:12:32.437] [INFO ] Running offline device check... [2026-07-13 13:12:32.437] [INFO ] Starting offline device check... [2026-07-13 13:12:32.441] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms idle=27.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:12:32.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=14.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.457] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.461] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.462] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.463] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.466] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.467] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.475] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.475] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.482] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.486] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=0.3ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.488] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.502] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=12.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.508] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.508] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.524] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=15.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.527] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.533] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.534] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.537] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.538] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.540] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.543] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.5ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.546] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.547] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.549] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.551] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.551] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.552] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.554] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:12:32.554] [INFO ] Offline device check completed. Found 42 offline devices, updated 0 statuses. [2026-07-13 13:12:32.556] [INFO ] Offline device check completed successfully [2026-07-13 13:17:28.172] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 13:17:28.173] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=720.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-07-13 13:17:28.174] [DEBUG] QUERY OK source="filter_usage" db=0.3ms queue=0.3ms idle=116.6ms 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-07-13 13:17:28.174] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 13:17:32.556] [INFO ] Running offline device check... [2026-07-13 13:17:32.556] [INFO ] Starting offline device check... [2026-07-13 13:17:32.558] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1104.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:17:32.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=242.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms queue=0.1ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.580] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.582] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.583] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms queue=1.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.593] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.607] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.610] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.626] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.627] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.629] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.633] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.648] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=14.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.651] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.658] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.658] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.662] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.667] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.672] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.674] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.675] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.676] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.677] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.678] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.680] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:17:32.680] [INFO ] Offline device check completed. Found 42 offline devices, updated 0 statuses. [2026-07-13 13:17:32.680] [INFO ] Offline device check completed successfully [2026-07-13 13:22:32.681] [INFO ] Running offline device check... [2026-07-13 13:22:32.681] [INFO ] Starting offline device check... [2026-07-13 13:22:32.682] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=488.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:22:32.690] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=215.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.699] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.704] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.705] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.707] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.707] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.709] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms queue=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.713] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.727] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=10.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.730] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.731] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.749] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=17.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.754] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.755] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.757] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.770] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=13.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms queue=0.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.787] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=10.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=0.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.791] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.793] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.800] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.802] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.805] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.808] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.808] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.811] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.815] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:22:32.815] [INFO ] Offline device check completed. Found 42 offline devices, updated 0 statuses. [2026-07-13 13:22:32.815] [INFO ] Offline device check completed successfully [2026-07-13 13:27:32.816] [INFO ] Running offline device check... [2026-07-13 13:27:32.816] [INFO ] Starting offline device check... [2026-07-13 13:27:32.818] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=712.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:27:32.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=329.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.828] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.829] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.833] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.834] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.838] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.840] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.843] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.846] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.852] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.856] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.859] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.873] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=12.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.875] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.876] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.889] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.5ms idle=11.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.896] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.907] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.912] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.913] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.914] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.915] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.916] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.917] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:27:32.917] [INFO ] Offline device check completed. Found 42 offline devices, updated 0 statuses. [2026-07-13 13:27:32.918] [INFO ] Offline device check completed successfully [2026-07-13 13:29:53.021] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 30µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FRgwT1Y7PAAkWnNCEQ4vOiFWACgGAG4o8hs5eyqOS75vCyDlW2qftG-Z", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 13:32:28.175] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 13:32:28.178] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=1179.7ms 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-07-13 13:32:28.179] [DEBUG] QUERY OK source="filter_usage" db=0.8ms idle=179.9ms 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-07-13 13:32:28.179] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 13:32:32.919] [INFO ] Running offline device check... [2026-07-13 13:32:32.919] [INFO ] Starting offline device check... [2026-07-13 13:32:32.922] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms queue=0.1ms idle=1418.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:32:32.930] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=916.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.939] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.943] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.945] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.946] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.947] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.949] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.950] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.957] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.958] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=9.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.978] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.979] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.994] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.995] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=15.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:32.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.000] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.001] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.013] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms queue=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.028] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.029] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.030] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.034] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.034] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.037] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.042] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.045] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:32:33.045] [INFO ] Offline device check completed. Found 42 offline devices, updated 0 statuses. [2026-07-13 13:32:33.045] [INFO ] Offline device check completed successfully [2026-07-13 13:36:22.156] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:36:22.156] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:39:27Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:39:27Z","value":"62"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:39:27Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:39:27Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:39:27Z","value":""},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:39:27Z","value":"1.0.0"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:39:27Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:39:27Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:39:27Z","vendor":"MoreFun"} [2026-07-13 13:36:22.156] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:39:27Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:39:27Z", "value" => "62"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:39:27Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:39:27Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:39:27Z", "value" => ""}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:39:27Z", "value" => "1.0.0"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:39:27Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:39:27Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:39:27Z", "vendor" => "MoreFun"} [2026-07-13 13:36:22.156] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.0", keys_config: "", parameter_config: ""} [2026-07-13 13:36:22.157] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:36:22.157] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:36:22.162] [DEBUG] QUERY OK source="parameter_templates" db=5.3ms idle=1425.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:36:22.163] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=426.3ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:36:22.165] [DEBUG] QUERY OK source="parameter_template_values" db=1.3ms idle=1.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:36:22.170] [DEBUG] QUERY OK source="parameter_definitions" db=1.1ms queue=3.6ms idle=2.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:36:22.172] [DEBUG] QUERY OK source="pos_terminal" db=0.7ms idle=5.8ms 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:165 [2026-07-13 13:36:22.212] [DEBUG] QUERY OK source="pos_merchant" db=39.9ms idle=1.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:36:22.215] [DEBUG] QUERY OK db=1.9ms queue=1.0ms idle=697.7ms 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 ["490603880000000"] [2026-07-13 13:36:22.215] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:36:22.217] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms idle=43.8ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:36:22.218] [DEBUG] QUERY OK source="address" db=0.8ms idle=4.6ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:36:22.218] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:36:22.219] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:36:22.254] [DEBUG] QUERY OK db=30.5ms queue=2.6ms idle=3.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a80e9e478fa3683907d2efaa59b5435d61e6fad796c643bbb7429fa686cd102b", 4324, 914, ~U[2026-07-13 13:36:22Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:36:22.254] [INFO ] AutoPushService: Created push log 33545 for MF919 params.zip [2026-07-13 13:36:22.254] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4324, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:36:22.254] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:36:22.255] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:36:22.259] [DEBUG] QUERY OK source="config_file_versions" db=4.5ms idle=37.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:36:22.265] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:36:22.287] [DEBUG] QUERY OK db=20.3ms queue=0.9ms idle=12.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "5b6b62955d29d086cd874696bdeeace99bc7258c0ea8901e4a900c84a1cd1576", 4388, 17947, ~U[2026-07-13 13:36:22Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:36:22.287] [INFO ] AutoPushService: Created push log 33546 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:36:22.287] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 4388, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:36:22.288] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:36:22.288] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:36:22.290] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=29.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:36:22.290] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:36:22.294] [DEBUG] QUERY OK source="tms_terminals" db=3.2ms idle=3.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:36:22.294] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:36:22.302] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:36:22.302] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:36:22.303] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:36:22.304] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=12.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:36:22.307] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:36:22.308] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:36:22.310] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=13.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:36:22.392] [DEBUG] QUERY OK source="tms_terminals" db=40.5ms queue=40.5ms idle=6.8ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["MF919", "MoreFun", ~N[2026-07-13 13:36:22], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-07-13 13:36:22.392] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:36:22.392] [INFO ] Event published: terminal_updated [2026-07-13 13:36:22.394] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=0.6ms idle=82.1ms UPDATE `terminal_group_memberships` AS t0 SET t0.`is_active` = ?, t0.`updated_at` = ? WHERE ((t0.`terminal_id` = ?) AND (t0.`is_active` = TRUE)) [false, ~N[2026-07-13 13:36:22], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-07-13 13:36:22.393] [DEBUG] Processing terminal event: terminal_updated [2026-07-13 13:36:22.397] [INFO ] Processing terminal_updated event for terminal 33 [2026-07-13 13:36:22.397] [INFO ] Changed fields: [:vendor, :model] [2026-07-13 13:36:22.399] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=1.5ms idle=4.2ms 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.`id` = ?) [33] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:207 [2026-07-13 13:36:22.401] [DEBUG] QUERY OK source="terminal_group_rules" db=1.5ms idle=0.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-07-13 13:36:22.401] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-07-13 13:36:22.461] [DEBUG] QUERY OK source="tms_terminals" db=23.1ms queue=41.2ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `model` = ?, `vendor` = ?, `app_version` = ?, `emv_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "MF919", "MoreFun", "1.0.0", "1.0.0", ~N[2026-07-13 13:36:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:36:22.462] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms queue=0.3ms idle=59.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:36:22.463] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:36:22.463] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:emv_config, "1.0.0", "1.0.1"}, {:application, "1.0.0", "3.8.5"}] [2026-07-13 13:36:22.520] [DEBUG] QUERY OK source="parameter_push_logs" db=55.8ms idle=1.6ms 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-07-13 13:06:22]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:36:22.520] [INFO ] VersionComplianceChecker: Skipping emv_config re-push for 98251226730001 (push already in-flight or within cooldown) [2026-07-13 13:36:22.539] [DEBUG] QUERY OK source="parameter_push_logs" db=18.5ms idle=56.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, "application", ~N[2026-07-13 13:06:22]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:36:22.539] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:36:22.540] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:36:22.540] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=20.2ms 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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:36:22.542] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=1.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:36:22.543] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:36:22.543] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=2.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:36:22.610] [DEBUG] QUERY OK source="tms_terminals" db=25.2ms queue=40.8ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:36:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:36:22.631] [DEBUG] QUERY OK db=20.4ms queue=0.5ms idle=66.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:39:27Z", ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:36:22.631] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47122, oid: "organization_id", upload_time: "2026-07-13T21:39:27Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]} [2026-07-13 13:36:22.631] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:39:27Z", "value" => "online"} [2026-07-13 13:36:22.664] [DEBUG] QUERY OK db=31.2ms queue=0.7ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:39:27Z", "online", "status", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.664] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405493, itemkey: "status", value: "online", timestamp: "2026-07-13T21:39:27Z", message: "Terminal status update", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.664] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:36:22.707] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=41.4ms idle=33.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:36:22], 33] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 13:36:22.707] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:39:27Z", "value" => "62"} [2026-07-13 13:36:22.731] [DEBUG] QUERY OK db=23.3ms idle=43.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:39:27Z", "62", "battery", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.732] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405494, itemkey: "battery", value: "62", timestamp: "2026-07-13T21:39:27Z", message: "Battery level", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.732] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:39:27Z", "value" => "online"} [2026-07-13 13:36:22.755] [DEBUG] QUERY OK db=22.3ms queue=1.1ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:39:27Z", "online", "network", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.756] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405495, itemkey: "network", value: "online", timestamp: "2026-07-13T21:39:27Z", message: "Network connectivity", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.756] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:36:22.758] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=17.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:36:22], 33] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 13:36:22.759] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:39:27Z", "value" => "0"} [2026-07-13 13:36:22.785] [DEBUG] QUERY OK db=25.9ms idle=3.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:39:27Z", "0", "cpu", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.786] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405496, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:39:27Z", message: "CPU usage percentage", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.786] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:39:27Z", "value" => ""} [2026-07-13 13:36:22.820] [DEBUG] QUERY OK db=29.0ms queue=2.2ms idle=30.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:39:27Z", "parameter_config", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.821] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405497, itemkey: "parameter_config", value: nil, timestamp: "2026-07-13T21:39:27Z", message: "Current parameters version", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.821] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:39:27Z", "value" => "1.0.0"} [2026-07-13 13:36:22.847] [DEBUG] QUERY OK db=25.7ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:39:27Z", "1.0.0", "emv_config", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405498, itemkey: "emv_config", value: "1.0.0", timestamp: "2026-07-13T21:39:27Z", message: "Current EMV config version", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.848] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:39:27Z", "value" => ""} [2026-07-13 13:36:22.873] [DEBUG] QUERY OK db=24.6ms idle=28.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:39:27Z", "keys_config", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.873] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405499, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:39:27Z", message: "Current keys config version", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.874] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:39:27Z", "value" => "1.0.0"} [2026-07-13 13:36:22.895] [DEBUG] QUERY OK db=20.1ms idle=27.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:39:27Z", "1.0.0", "application", 47122, ~N[2026-07-13 13:36:22], ~N[2026-07-13 13:36:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:22.895] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405500, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:39:27Z", message: "Current application version", status_log_id: 47122, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:22], updated_at: ~N[2026-07-13 13:36:22]}} [2026-07-13 13:36:22.896] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=22.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:36:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 13:36:22.896] [WARN ] Unexpected async result [2026-07-13 13:36:22.897] [WARN ] Unexpected async result [2026-07-13 13:36:39.026] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:36:39.026] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:39:44Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:39:44Z","value":"62"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:39:44Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:39:44Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:39:44Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:39:44Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:39:44Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:39:44Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:39:44Z","vendor":"MoreFun"} [2026-07-13 13:36:39.027] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:39:44Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:39:44Z", "value" => "62"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:39:44Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:39:44Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:39:44Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:39:44Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:39:44Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:39:44Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:39:44Z", "vendor" => "MoreFun"} [2026-07-13 13:36:39.027] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:36:39.030] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:36:39.030] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:36:39.033] [DEBUG] QUERY OK source="parameter_templates" db=1.8ms queue=0.1ms idle=1252.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:36:39.033] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=252.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:36:39.036] [DEBUG] QUERY OK source="parameter_template_values" db=2.0ms idle=0.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:36:39.037] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=0.6ms idle=2.6ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:36:39.039] [DEBUG] QUERY OK source="pos_terminal" db=1.2ms idle=2.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:165 [2026-07-13 13:36:39.080] [DEBUG] QUERY OK source="pos_merchant" db=40.4ms idle=2.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:36:39.082] [DEBUG] QUERY OK db=0.6ms queue=0.8ms idle=1563.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 ["490603880000000"] [2026-07-13 13:36:39.082] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:36:39.083] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms idle=42.8ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:36:39.085] [DEBUG] QUERY OK source="address" db=1.5ms idle=3.2ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:36:39.085] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:36:39.087] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:36:39.116] [DEBUG] QUERY OK db=26.8ms queue=0.8ms idle=5.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c0f62515fd55cb5a0ef387ce5070c8fa5895c33966f183c7ef7931b325353bdb", 4580, 914, ~U[2026-07-13 13:36:39Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:36:39.116] [INFO ] AutoPushService: Created push log 33547 for MF919 params.zip [2026-07-13 13:36:39.117] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4580, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:36:39.117] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:36:39.119] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:36:39.120] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=34.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:36:39.125] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:36:39.153] [DEBUG] QUERY OK db=24.0ms queue=0.6ms idle=12.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "28c4b3bdd94fa7dbccf0b9e081775b6893fff2216a181ef5cccb95c38e436bb1", 14754, 17947, ~U[2026-07-13 13:36:39Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:36:39.153] [INFO ] AutoPushService: Created push log 33548 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:36:39.153] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 14754, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:36:39.153] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:36:39.154] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:36:39.156] [DEBUG] QUERY OK source="config_file_versions" db=2.1ms idle=34.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:36:39.156] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:36:39.158] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=4.7ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:36:39.158] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:36:39.159] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:36:39.159] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:36:39.159] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:36:39.163] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=5.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:36:39.164] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:36:39.164] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:36:39.166] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=6.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:36:39.166] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:36:39.233] [DEBUG] QUERY OK source="tms_terminals" db=25.4ms queue=41.2ms idle=2.8ms UPDATE `tms_terminals` SET `status` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "1.0.0", "1.0.1", "1.0.0", ~N[2026-07-13 13:36:39], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:36:39.234] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms queue=0.1ms idle=67.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:36:39.235] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=1.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:36:39.237] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:36:39.237] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:36:39.255] [DEBUG] QUERY OK source="parameter_push_logs" db=17.1ms idle=2.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-07-13 13:06:39]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:36:39.256] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:36:39.256] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:36:39.256] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=19.1ms 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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:36:39.257] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:36:39.258] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:36:39.258] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:36:39.324] [DEBUG] QUERY OK source="tms_terminals" db=23.5ms queue=41.1ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:36:39], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:36:39.374] [DEBUG] QUERY OK db=48.5ms queue=0.7ms idle=65.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:39:44Z", ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:36:39.374] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47123, oid: "organization_id", upload_time: "2026-07-13T21:39:44Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]} [2026-07-13 13:36:39.374] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:39:44Z", "value" => "online"} [2026-07-13 13:36:39.428] [DEBUG] QUERY OK db=53.8ms idle=50.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:39:44Z", "online", "status", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.429] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405501, itemkey: "status", value: "online", timestamp: "2026-07-13T21:39:44Z", message: "Terminal status update", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.429] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:36:39.429] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:39:44Z", "value" => "62"} [2026-07-13 13:36:39.473] [DEBUG] QUERY OK db=43.1ms queue=0.1ms idle=55.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:39:44Z", "62", "battery", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.473] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405502, itemkey: "battery", value: "62", timestamp: "2026-07-13T21:39:44Z", message: "Battery level", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.473] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:39:44Z", "value" => "online"} [2026-07-13 13:36:39.494] [DEBUG] QUERY OK db=20.6ms idle=44.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:39:44Z", "online", "network", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.494] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405503, itemkey: "network", value: "online", timestamp: "2026-07-13T21:39:44Z", message: "Network connectivity", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.495] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:36:39.495] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:39:44Z", "value" => "0"} [2026-07-13 13:36:39.520] [DEBUG] QUERY OK db=23.3ms idle=23.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:39:44Z", "0", "cpu", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.520] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405504, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:39:44Z", message: "CPU usage percentage", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.520] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:39:44Z", "value" => "1.0.0"} [2026-07-13 13:36:39.545] [DEBUG] QUERY OK db=24.1ms idle=26.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:39:44Z", "1.0.0", "parameter_config", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.545] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405505, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:39:44Z", message: "Current parameters version", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.545] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:39:44Z", "value" => "1.0.1"} [2026-07-13 13:36:39.580] [DEBUG] QUERY OK db=34.5ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:39:44Z", "1.0.1", "emv_config", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.581] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405506, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:39:44Z", message: "Current EMV config version", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.581] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:39:44Z", "value" => ""} [2026-07-13 13:36:39.605] [DEBUG] QUERY OK db=23.6ms idle=36.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:39:44Z", "keys_config", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.605] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405507, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:39:44Z", message: "Current keys config version", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.606] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:39:44Z", "value" => "1.0.0"} [2026-07-13 13:36:39.638] [DEBUG] QUERY OK db=31.8ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:39:44Z", "1.0.0", "application", 47123, ~N[2026-07-13 13:36:39], ~N[2026-07-13 13:36:39]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:36:39.638] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405508, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:39:44Z", message: "Current application version", status_log_id: 47123, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:36:39], updated_at: ~N[2026-07-13 13:36:39]}} [2026-07-13 13:36:39.639] [WARN ] Unexpected async result [2026-07-13 13:36:39.639] [WARN ] Unexpected async result [2026-07-13 13:37:19.885] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:37:19.885] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:40:25Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:40:25Z","value":"62"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:40:25Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:40:25Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:40:25Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:40:25Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:40:25Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:40:25Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:40:25Z","vendor":"MoreFun"} [2026-07-13 13:37:19.886] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:40:25Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:40:25Z", "value" => "62"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:40:25Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:40:25Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:40:25Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:40:25Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:40:25Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:40:25Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:40:25Z", "vendor" => "MoreFun"} [2026-07-13 13:37:19.886] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:37:19.887] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:37:19.887] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:37:19.888] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=993.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:37:19.889] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=364.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:37:19.890] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:37:19.892] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=0.4ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:37:19.893] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms queue=0.5ms idle=1.9ms 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:165 [2026-07-13 13:37:19.933] [DEBUG] QUERY OK source="pos_merchant" db=39.1ms idle=1.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:37:19.934] [DEBUG] QUERY OK db=0.6ms queue=0.8ms idle=1410.2ms 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 ["490603880000000"] [2026-07-13 13:37:19.934] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:37:19.936] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms idle=38.1ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:37:19.936] [DEBUG] QUERY OK source="address" db=0.2ms queue=0.1ms idle=3.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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:37:19.936] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:37:19.938] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:37:19.973] [DEBUG] QUERY OK db=33.7ms idle=3.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "ebea4cc3a5dd9e123edd3fa5a6dcff090c2cf8ec89a19272c98093f3d0508483", 14882, 914, ~U[2026-07-13 13:37:19Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:37:19], ~N[2026-07-13 13:37:19]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:37:19.973] [INFO ] AutoPushService: Created push log 33549 for MF919 params.zip [2026-07-13 13:37:19.975] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 14882, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:37:19.975] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:37:19.975] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:37:19.976] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=39.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:37:19.980] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:37:20.007] [DEBUG] QUERY OK db=26.0ms idle=8.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "41c09dc9812efeede645b10948ce7b5c8b66f92f5163203385c47fb57fd0d08f", 4772, 17947, ~U[2026-07-13 13:37:19Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:37:19], ~N[2026-07-13 13:37:19]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:37:20.008] [INFO ] AutoPushService: Created push log 33550 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:37:20.008] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 4772, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:37:20.008] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:37:20.008] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:37:20.009] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=0.1ms idle=31.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:37:20.009] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:37:20.010] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=2.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:37:20.010] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:37:20.011] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:37:20.011] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:37:20.012] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:37:20.013] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=3.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:37:20.014] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:37:20.014] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:37:20.014] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=3.9ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:37:20.015] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:37:20.043] [DEBUG] QUERY OK source="tms_terminals" db=28.0ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:37:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:37:20.045] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=29.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:37:20.046] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:37:20.049] [DEBUG] QUERY OK source="config_file_versions" db=2.6ms idle=1.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:37:20.049] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:37:20.070] [DEBUG] QUERY OK source="parameter_push_logs" db=19.9ms idle=3.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-07-13 13:07:20]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:37:20.070] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:37:20.070] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:37:20.071] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=21.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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:37:20.072] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:37:20.073] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:37:20.073] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1.3ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:37:20.102] [DEBUG] QUERY OK source="tms_terminals" db=28.1ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:37:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:37:20.136] [DEBUG] QUERY OK db=32.4ms queue=0.6ms idle=28.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:40:25Z", ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:37:20.136] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47124, oid: "organization_id", upload_time: "2026-07-13T21:40:25Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]} [2026-07-13 13:37:20.137] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:40:25Z", "value" => "online"} [2026-07-13 13:37:20.160] [DEBUG] QUERY OK db=22.2ms idle=35.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:40:25Z", "online", "status", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405509, itemkey: "status", value: "online", timestamp: "2026-07-13T21:40:25Z", message: "Terminal status update", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.160] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:37:20.160] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:40:25Z", "value" => "62"} [2026-07-13 13:37:20.185] [DEBUG] QUERY OK db=24.1ms idle=25.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:40:25Z", "62", "battery", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.186] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405510, itemkey: "battery", value: "62", timestamp: "2026-07-13T21:40:25Z", message: "Battery level", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.187] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:40:25Z", "value" => "online"} [2026-07-13 13:37:20.220] [DEBUG] QUERY OK db=32.7ms idle=27.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:40:25Z", "online", "network", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.220] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405511, itemkey: "network", value: "online", timestamp: "2026-07-13T21:40:25Z", message: "Network connectivity", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.221] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:37:20.221] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:40:25Z", "value" => "0"} [2026-07-13 13:37:20.245] [DEBUG] QUERY OK db=23.1ms idle=36.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:40:25Z", "0", "cpu", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.245] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405512, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:40:25Z", message: "CPU usage percentage", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.246] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:40:25Z", "value" => "1.0.0"} [2026-07-13 13:37:20.281] [DEBUG] QUERY OK db=35.1ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:40:25Z", "1.0.0", "parameter_config", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.281] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405513, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:40:25Z", message: "Current parameters version", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.283] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:40:25Z", "value" => "1.0.1"} [2026-07-13 13:37:20.326] [DEBUG] QUERY OK db=42.1ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:40:25Z", "1.0.1", "emv_config", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.326] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405514, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:40:25Z", message: "Current EMV config version", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.326] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:40:25Z", "value" => ""} [2026-07-13 13:37:20.382] [DEBUG] QUERY OK db=55.1ms queue=0.5ms idle=45.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:40:25Z", "keys_config", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.382] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405515, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:40:25Z", message: "Current keys config version", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.382] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:40:25Z", "value" => "1.0.0"} [2026-07-13 13:37:20.436] [DEBUG] QUERY OK db=53.3ms idle=57.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:40:25Z", "1.0.0", "application", 47124, ~N[2026-07-13 13:37:20], ~N[2026-07-13 13:37:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:37:20.437] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405516, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:40:25Z", message: "Current application version", status_log_id: 47124, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:37:20], updated_at: ~N[2026-07-13 13:37:20]}} [2026-07-13 13:37:20.437] [WARN ] Unexpected async result [2026-07-13 13:37:20.437] [WARN ] Unexpected async result [2026-07-13 13:37:33.046] [INFO ] Running offline device check... [2026-07-13 13:37:33.046] [INFO ] Starting offline device check... [2026-07-13 13:37:33.048] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1112.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:37:33.055] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=107.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms queue=0.1ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.062] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.065] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.066] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.071] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.072] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.079] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.085] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.086] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.099] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=13.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.101] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.103] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.104] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.118] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.119] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.130] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.135] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.136] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.136] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.138] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.140] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.141] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.141] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.142] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.143] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:37:33.143] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 13:37:33.143] [INFO ] Offline device check completed successfully [2026-07-13 13:38:02.884] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:38:02.884] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:41:08Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:41:08Z","value":"62"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:41:08Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:41:08Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:41:08Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:41:08Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:41:08Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:41:08Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:41:08Z","vendor":"MoreFun"} [2026-07-13 13:38:02.888] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:41:08Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:41:08Z", "value" => "62"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:41:08Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:41:08Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:41:08Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:41:08Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:41:08Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:41:08Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:41:08Z", "vendor" => "MoreFun"} [2026-07-13 13:38:02.888] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:38:02.888] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:38:02.888] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:38:02.893] [DEBUG] QUERY OK source="parameter_templates" db=4.0ms idle=1360.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:38:02.896] [DEBUG] QUERY OK source="tms_terminals" db=3.4ms idle=855.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:38:02.899] [DEBUG] QUERY OK source="parameter_template_values" db=1.4ms idle=4.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:38:02.901] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=0.4ms idle=3.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:38:02.905] [DEBUG] QUERY OK source="pos_terminal" db=2.0ms queue=0.1ms idle=4.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:165 [2026-07-13 13:38:02.948] [DEBUG] QUERY OK source="pos_merchant" db=42.8ms idle=4.1ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:38:02.955] [DEBUG] QUERY OK db=5.7ms queue=0.4ms idle=1421.1ms 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 ["490603880000000"] [2026-07-13 13:38:02.955] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:38:02.956] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms idle=50.5ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:38:02.961] [DEBUG] QUERY OK source="address" db=2.2ms queue=0.5ms idle=9.8ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:38:02.961] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:38:02.964] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:38:03.000] [DEBUG] QUERY OK db=33.0ms queue=0.7ms idle=10.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "2cda5af1fee8733a47db61b3d4564daeb61f2b4b7075cd8e39fac51c575209ef", 14946, 914, ~U[2026-07-13 13:38:02Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:38:02], ~N[2026-07-13 13:38:02]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:38:03.001] [INFO ] AutoPushService: Created push log 33551 for MF919 params.zip [2026-07-13 13:38:03.001] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 14946, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:38:03.001] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:38:03.001] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:38:03.006] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=44.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:38:03.009] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:38:03.051] [DEBUG] QUERY OK db=38.7ms idle=11.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "208beabff301283828542a7eb4178bb4ba75ca78d7dd8a548fb49ffd1bf0114c", 15010, 17947, ~U[2026-07-13 13:38:03Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:38:03.051] [INFO ] AutoPushService: Created push log 33552 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:38:03.054] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 15010, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:38:03.054] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:38:03.054] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:38:03.056] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=6.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:38:03.057] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:38:03.057] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=6.3ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:38:03.058] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:38:03.063] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:38:03.063] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:38:03.064] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:38:03.066] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=8.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:38:03.070] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:38:03.070] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:38:03.072] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=13.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:38:03.072] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:38:03.094] [DEBUG] QUERY OK source="tms_terminals" db=21.0ms idle=6.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:38:03], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:38:03.095] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms queue=0.1ms idle=21.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:38:03.096] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:38:03.098] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=1.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:38:03.098] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:38:03.135] [DEBUG] QUERY OK source="parameter_push_logs" db=36.6ms queue=0.2ms idle=2.0ms 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-07-13 13:08:03]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:38:03.135] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:38:03.135] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:38:03.137] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=37.9ms 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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:38:03.138] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=2.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:38:03.139] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:38:03.141] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=2.3ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:38:03.170] [DEBUG] QUERY OK source="tms_terminals" db=28.8ms queue=0.5ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:38:03], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:38:03.202] [DEBUG] QUERY OK db=31.6ms idle=29.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:41:08Z", ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:38:03.202] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47125, oid: "organization_id", upload_time: "2026-07-13T21:41:08Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]} [2026-07-13 13:38:03.203] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:41:08Z", "value" => "online"} [2026-07-13 13:38:03.223] [DEBUG] QUERY OK db=20.2ms idle=32.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:41:08Z", "online", "status", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.224] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405517, itemkey: "status", value: "online", timestamp: "2026-07-13T21:41:08Z", message: "Terminal status update", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.224] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:38:03.224] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:41:08Z", "value" => "62"} [2026-07-13 13:38:03.257] [DEBUG] QUERY OK db=32.9ms queue=0.1ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:41:08Z", "62", "battery", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.258] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405518, itemkey: "battery", value: "62", timestamp: "2026-07-13T21:41:08Z", message: "Battery level", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.262] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:41:08Z", "value" => "online"} [2026-07-13 13:38:03.294] [DEBUG] QUERY OK db=31.2ms idle=39.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:41:08Z", "online", "network", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.294] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405519, itemkey: "network", value: "online", timestamp: "2026-07-13T21:41:08Z", message: "Network connectivity", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.294] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:38:03.294] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:41:08Z", "value" => "0"} [2026-07-13 13:38:03.322] [DEBUG] QUERY OK db=27.5ms idle=37.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:41:08Z", "0", "cpu", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.322] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405520, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:41:08Z", message: "CPU usage percentage", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.323] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:41:08Z", "value" => "1.0.0"} [2026-07-13 13:38:03.350] [DEBUG] QUERY OK db=27.2ms idle=29.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:41:08Z", "1.0.0", "parameter_config", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.350] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405521, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:41:08Z", message: "Current parameters version", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.351] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:41:08Z", "value" => "1.0.1"} [2026-07-13 13:38:03.425] [DEBUG] QUERY OK db=70.7ms queue=3.2ms idle=28.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:41:08Z", "1.0.1", "emv_config", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.425] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405522, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:41:08Z", message: "Current EMV config version", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.425] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:41:08Z", "value" => ""} [2026-07-13 13:38:03.471] [DEBUG] QUERY OK db=45.6ms idle=75.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:41:08Z", "keys_config", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.472] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405523, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:41:08Z", message: "Current keys config version", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.472] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:41:08Z", "value" => "1.0.0"} [2026-07-13 13:38:03.521] [DEBUG] QUERY OK db=43.4ms idle=52.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:41:08Z", "1.0.0", "application", 47125, ~N[2026-07-13 13:38:03], ~N[2026-07-13 13:38:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:03.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405524, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:41:08Z", message: "Current application version", status_log_id: 47125, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:03], updated_at: ~N[2026-07-13 13:38:03]}} [2026-07-13 13:38:03.522] [WARN ] Unexpected async result [2026-07-13 13:38:03.522] [WARN ] Unexpected async result [2026-07-13 13:38:22.203] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:38:22.203] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:41:27Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:41:27Z","value":"62"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:41:27Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:41:27Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:41:27Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:41:27Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:41:27Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:41:27Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:41:27Z","vendor":"MoreFun"} [2026-07-13 13:38:22.204] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:41:27Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:41:27Z", "value" => "62"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:41:27Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:41:27Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:41:27Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:41:27Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:41:27Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:41:27Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:41:27Z", "vendor" => "MoreFun"} [2026-07-13 13:38:22.204] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:38:22.204] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:38:22.205] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:38:22.206] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.4ms idle=1090.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:38:22.207] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.1ms idle=88.9ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:38:22.208] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:38:22.211] [DEBUG] QUERY OK source="parameter_definitions" db=1.1ms queue=0.5ms idle=2.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:38:22.212] [DEBUG] QUERY OK source="pos_terminal" db=0.8ms idle=3.6ms 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:165 [2026-07-13 13:38:22.253] [DEBUG] QUERY OK source="pos_merchant" db=40.0ms idle=1.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:38:22.254] [DEBUG] QUERY OK db=0.6ms queue=0.8ms idle=1720.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 ["490603880000000"] [2026-07-13 13:38:22.255] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:38:22.256] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms queue=0.1ms idle=43.0ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:38:22.257] [DEBUG] QUERY OK source="address" db=0.4ms queue=0.2ms idle=3.6ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:38:22.257] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:38:22.259] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:38:22.281] [DEBUG] QUERY OK db=19.6ms queue=0.4ms idle=4.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a87bf7a94e16a519f6d67618190be15ef9801b03fed0abe726f49244d245b958", 1061, 914, ~U[2026-07-13 13:38:22Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:38:22.281] [INFO ] AutoPushService: Created push log 33553 for MF919 params.zip [2026-07-13 13:38:22.281] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 1061, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:38:22.281] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:38:22.282] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:38:22.284] [DEBUG] QUERY OK source="config_file_versions" db=2.0ms idle=25.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:38:22.287] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:38:22.307] [DEBUG] QUERY OK db=19.0ms idle=7.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "953d652eddc51de535179a9eaf7cb58a355da45bb8f89e519f64e40535e3c6e2", 4387, 17947, ~U[2026-07-13 13:38:22Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:38:22.307] [INFO ] AutoPushService: Created push log 33554 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:38:22.307] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 4387, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:38:22.308] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:38:22.308] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:38:22.309] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=0.1ms idle=24.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:38:22.310] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:38:22.311] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=3.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:38:22.311] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:38:22.313] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:38:22.313] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:38:22.313] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:38:22.315] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms queue=0.2ms idle=4.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:38:22.315] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:38:22.315] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:38:22.316] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=4.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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:38:22.316] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:38:22.341] [DEBUG] QUERY OK source="tms_terminals" db=24.6ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:38:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:38:22.344] [DEBUG] QUERY OK source="parameter_templates" db=2.4ms idle=25.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:38:22.346] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=3.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:38:22.348] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:38:22.348] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:38:22.367] [DEBUG] QUERY OK source="parameter_push_logs" db=18.4ms idle=2.0ms 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-07-13 13:08:22]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:38:22.368] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:38:22.369] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:38:22.369] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=20.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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:38:22.373] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=5.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:38:22.374] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:38:22.375] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=5.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:38:22.390] [DEBUG] QUERY OK source="tms_terminals" db=14.0ms idle=2.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:38:22], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:38:22.405] [DEBUG] QUERY OK db=15.2ms queue=0.1ms idle=14.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:41:27Z", ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:38:22.406] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47126, oid: "organization_id", upload_time: "2026-07-13T21:41:27Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]} [2026-07-13 13:38:22.406] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:41:27Z", "value" => "online"} [2026-07-13 13:38:22.439] [DEBUG] QUERY OK db=31.7ms idle=17.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:41:27Z", "online", "status", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.439] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405525, itemkey: "status", value: "online", timestamp: "2026-07-13T21:41:27Z", message: "Terminal status update", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.439] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:38:22.440] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:41:27Z", "value" => "62"} [2026-07-13 13:38:22.463] [DEBUG] QUERY OK db=22.7ms queue=0.1ms idle=34.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:41:27Z", "62", "battery", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.463] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405526, itemkey: "battery", value: "62", timestamp: "2026-07-13T21:41:27Z", message: "Battery level", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.463] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:41:27Z", "value" => "online"} [2026-07-13 13:38:22.481] [DEBUG] QUERY OK db=17.2ms idle=24.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:41:27Z", "online", "network", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.481] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405527, itemkey: "network", value: "online", timestamp: "2026-07-13T21:41:27Z", message: "Network connectivity", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.481] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:38:22.481] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:41:27Z", "value" => "0"} [2026-07-13 13:38:22.497] [DEBUG] QUERY OK db=15.1ms idle=18.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:41:27Z", "0", "cpu", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.497] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405528, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:41:27Z", message: "CPU usage percentage", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.497] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:41:27Z", "value" => "1.0.0"} [2026-07-13 13:38:22.526] [DEBUG] QUERY OK db=28.4ms idle=16.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:41:27Z", "1.0.0", "parameter_config", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.527] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405529, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:41:27Z", message: "Current parameters version", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.527] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:41:27Z", "value" => "1.0.1"} [2026-07-13 13:38:22.558] [DEBUG] QUERY OK db=30.1ms idle=31.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:41:27Z", "1.0.1", "emv_config", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.560] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405530, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:41:27Z", message: "Current EMV config version", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.560] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:41:27Z", "value" => ""} [2026-07-13 13:38:22.583] [DEBUG] QUERY OK db=23.0ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:41:27Z", "keys_config", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.583] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405531, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:41:27Z", message: "Current keys config version", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.584] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:41:27Z", "value" => "1.0.0"} [2026-07-13 13:38:22.606] [DEBUG] QUERY OK db=21.6ms idle=26.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:41:27Z", "1.0.0", "application", 47126, ~N[2026-07-13 13:38:22], ~N[2026-07-13 13:38:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:38:22.607] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405532, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:41:27Z", message: "Current application version", status_log_id: 47126, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:38:22], updated_at: ~N[2026-07-13 13:38:22]}} [2026-07-13 13:38:22.607] [WARN ] Unexpected async result [2026-07-13 13:38:22.607] [WARN ] Unexpected async result [2026-07-13 13:39:36.873] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:39:36.873] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:42:42Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:42:42Z","value":"62"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:42:42Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:42:42Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:42:42Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:42:42Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:42:42Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:42:42Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:42:42Z","vendor":"MoreFun"} [2026-07-13 13:39:36.873] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:42:42Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:42:42Z", "value" => "62"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:42:42Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:42:42Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:42:42Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:42:42Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:42:42Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:42:42Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:42:42Z", "vendor" => "MoreFun"} [2026-07-13 13:39:36.873] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:39:36.874] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:39:36.874] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:39:36.875] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=532.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:39:36.876] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=336.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:39:36.876] [DEBUG] QUERY OK source="parameter_template_values" db=0.4ms idle=0.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:39:36.878] [DEBUG] QUERY OK source="parameter_definitions" db=0.6ms queue=0.4ms idle=1.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:39:36.879] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms idle=1.7ms 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:165 [2026-07-13 13:39:36.918] [DEBUG] QUERY OK source="pos_merchant" db=39.3ms queue=0.1ms idle=1.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:39:36.920] [DEBUG] QUERY OK db=0.5ms queue=0.4ms idle=1377.2ms 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 ["490603880000000"] [2026-07-13 13:39:36.920] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:39:36.922] [DEBUG] QUERY OK source="pos_terminal_data" db=1.4ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:39:36.922] [DEBUG] QUERY OK source="address" db=0.2ms queue=0.1ms idle=3.5ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:39:36.923] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:39:36.923] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:39:36.941] [DEBUG] QUERY OK db=16.6ms idle=2.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "b22dcf6c17f30515bd083894ce2aa8a438c8bc3494c591f4032e32ff51df23a7", 4515, 914, ~U[2026-07-13 13:39:36Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:39:36], ~N[2026-07-13 13:39:36]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:39:36.941] [INFO ] AutoPushService: Created push log 33555 for MF919 params.zip [2026-07-13 13:39:36.941] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4515, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:39:36.942] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:39:36.942] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:39:36.943] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=20.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:39:36.949] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:39:36.961] [DEBUG] QUERY OK db=10.8ms idle=9.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "2436e2b081fb630eba424b13d933fc0198e84342ecd2013a4f8a8f5eceaf5f29", 5156, 17947, ~U[2026-07-13 13:39:36Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:39:36], ~N[2026-07-13 13:39:36]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:39:36.962] [INFO ] AutoPushService: Created push log 33556 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:39:36.962] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 5156, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:39:36.962] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:39:36.962] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:39:36.964] [DEBUG] QUERY OK source="config_file_versions" db=2.0ms idle=19.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:39:36.965] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:39:36.966] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=4.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:39:36.966] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:39:36.968] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:39:36.968] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:39:36.969] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:39:36.970] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=5.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:39:36.970] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:39:36.970] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:39:36.972] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=4.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:39:36.972] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:39:37.000] [DEBUG] QUERY OK source="tms_terminals" db=27.2ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:39:36], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:39:37.001] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=28.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:39:37.001] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:39:37.002] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.1ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:39:37.002] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:39:37.018] [DEBUG] QUERY OK source="parameter_push_logs" db=15.4ms idle=1.2ms 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-07-13 13:09:37]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:39:37.018] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:39:37.018] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:39:37.019] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=16.3ms 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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:39:37.020] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:39:37.020] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:39:37.021] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.2ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:39:37.044] [DEBUG] QUERY OK source="tms_terminals" db=22.4ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:39:37], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:39:37.060] [DEBUG] QUERY OK db=16.1ms idle=23.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:42:42Z", ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:39:37.061] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47127, oid: "organization_id", upload_time: "2026-07-13T21:42:42Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]} [2026-07-13 13:39:37.061] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:42:42Z", "value" => "online"} [2026-07-13 13:39:37.076] [DEBUG] QUERY OK db=15.2ms idle=17.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:42:42Z", "online", "status", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.077] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405533, itemkey: "status", value: "online", timestamp: "2026-07-13T21:42:42Z", message: "Terminal status update", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.077] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:39:37.077] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:42:42Z", "value" => "62"} [2026-07-13 13:39:37.111] [DEBUG] QUERY OK db=33.1ms idle=17.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:42:42Z", "62", "battery", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.111] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405534, itemkey: "battery", value: "62", timestamp: "2026-07-13T21:42:42Z", message: "Battery level", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.111] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:42:42Z", "value" => "online"} [2026-07-13 13:39:37.137] [DEBUG] QUERY OK db=25.0ms queue=0.1ms idle=35.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:42:42Z", "online", "network", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.137] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405535, itemkey: "network", value: "online", timestamp: "2026-07-13T21:42:42Z", message: "Network connectivity", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.137] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:39:37.138] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:42:42Z", "value" => "0"} [2026-07-13 13:39:37.160] [DEBUG] QUERY OK db=22.3ms idle=26.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:42:42Z", "0", "cpu", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405536, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:42:42Z", message: "CPU usage percentage", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.161] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:42:42Z", "value" => "1.0.0"} [2026-07-13 13:39:37.172] [DEBUG] QUERY OK db=10.9ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:42:42Z", "1.0.0", "parameter_config", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.172] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405537, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:42:42Z", message: "Current parameters version", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.172] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:42:42Z", "value" => "1.0.1"} [2026-07-13 13:39:37.193] [DEBUG] QUERY OK db=20.1ms idle=12.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:42:42Z", "1.0.1", "emv_config", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.193] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405538, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:42:42Z", message: "Current EMV config version", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.194] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:42:42Z", "value" => ""} [2026-07-13 13:39:37.227] [DEBUG] QUERY OK db=33.4ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:42:42Z", "keys_config", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.228] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405539, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:42:42Z", message: "Current keys config version", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.228] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:42:42Z", "value" => "1.0.0"} [2026-07-13 13:39:37.252] [DEBUG] QUERY OK db=23.3ms idle=35.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:42:42Z", "1.0.0", "application", 47127, ~N[2026-07-13 13:39:37], ~N[2026-07-13 13:39:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:39:37.252] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405540, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:42:42Z", message: "Current application version", status_log_id: 47127, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:39:37], updated_at: ~N[2026-07-13 13:39:37]}} [2026-07-13 13:39:37.252] [WARN ] Unexpected async result [2026-07-13 13:39:37.252] [WARN ] Unexpected async result [2026-07-13 13:40:24.352] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:40:24.352] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:43:29Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:43:29Z","value":"61"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:43:29Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:43:29Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:43:29Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:43:29Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:43:29Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:43:29Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:43:29Z","vendor":"MoreFun"} [2026-07-13 13:40:24.353] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:43:29Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:43:29Z", "value" => "61"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:43:29Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:43:29Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:43:29Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:43:29Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:43:29Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:43:29Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:43:29Z", "vendor" => "MoreFun"} [2026-07-13 13:40:24.353] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:40:24.353] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:40:24.353] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:40:24.355] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms idle=878.3ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:40:24.356] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=813.2ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:40:24.357] [DEBUG] QUERY OK source="parameter_template_values" db=1.0ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:40:24.360] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=0.9ms idle=1.6ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:40:24.361] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms idle=3.0ms 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:165 [2026-07-13 13:40:24.401] [DEBUG] QUERY OK source="pos_merchant" db=39.2ms idle=1.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:40:24.402] [DEBUG] QUERY OK db=0.6ms queue=0.7ms idle=1851.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 ["490603880000000"] [2026-07-13 13:40:24.402] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:40:24.404] [DEBUG] QUERY OK source="pos_terminal_data" db=0.8ms idle=41.7ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:40:24.405] [DEBUG] QUERY OK source="address" db=0.8ms idle=3.4ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:40:24.405] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:40:24.406] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:40:24.422] [DEBUG] QUERY OK db=15.2ms idle=3.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8323fa055e987b2160d8daa99f47b19834368e24192292dfe44e0c5e3cd51a1b", 4611, 914, ~U[2026-07-13 13:40:24Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:40:24.423] [INFO ] AutoPushService: Created push log 33557 for MF919 params.zip [2026-07-13 13:40:24.423] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4611, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:40:24.423] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:40:24.423] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:40:24.426] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.2ms idle=19.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:40:24.433] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:40:24.458] [DEBUG] QUERY OK db=23.5ms idle=11.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8f8565cf425f5b8a34783e5c201e6c9a236fe84bd44427002bd357d1d60180e6", 4675, 17947, ~U[2026-07-13 13:40:24Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:40:24.458] [INFO ] AutoPushService: Created push log 33558 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:40:24.458] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 4675, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:40:24.458] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:40:24.458] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:40:24.460] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms queue=0.1ms idle=32.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:40:24.461] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:40:24.461] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.2ms 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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:40:24.462] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:40:24.464] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:40:24.464] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:40:24.464] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:40:24.465] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:40:24.466] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:40:24.466] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:40:24.467] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=5.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:40:24.467] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:40:24.493] [DEBUG] QUERY OK source="tms_terminals" db=25.2ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:40:24], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:40:24.494] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=15.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:40:24.495] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:40:24.496] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:40:24.496] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:40:24.514] [DEBUG] QUERY OK source="parameter_push_logs" db=17.8ms idle=1.0ms 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-07-13 13:10:24]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:40:24.515] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:40:24.515] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:40:24.516] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=18.7ms 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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:40:24.517] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms queue=0.1ms idle=1.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:40:24.517] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:40:24.518] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:40:24.533] [DEBUG] QUERY OK source="tms_terminals" db=15.3ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:40:24], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:40:24.547] [DEBUG] QUERY OK db=13.2ms idle=16.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:43:29Z", ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:40:24.547] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47128, oid: "organization_id", upload_time: "2026-07-13T21:43:29Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]} [2026-07-13 13:40:24.547] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:43:29Z", "value" => "online"} [2026-07-13 13:40:24.567] [DEBUG] QUERY OK db=18.1ms queue=0.1ms idle=15.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:43:29Z", "online", "status", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.567] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405541, itemkey: "status", value: "online", timestamp: "2026-07-13T21:43:29Z", message: "Terminal status update", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.567] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:40:24.568] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:43:29Z", "value" => "61"} [2026-07-13 13:40:24.615] [DEBUG] QUERY OK db=47.1ms idle=20.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:43:29Z", "61", "battery", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.615] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405542, itemkey: "battery", value: "61", timestamp: "2026-07-13T21:43:29Z", message: "Battery level", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.616] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:43:29Z", "value" => "online"} [2026-07-13 13:40:24.642] [DEBUG] QUERY OK db=26.4ms idle=49.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:43:29Z", "online", "network", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405543, itemkey: "network", value: "online", timestamp: "2026-07-13T21:43:29Z", message: "Network connectivity", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.643] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:40:24.643] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:43:29Z", "value" => "0"} [2026-07-13 13:40:24.661] [DEBUG] QUERY OK db=18.0ms idle=28.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:43:29Z", "0", "cpu", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.662] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405544, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:43:29Z", message: "CPU usage percentage", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.662] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:43:29Z", "value" => "1.0.0"} [2026-07-13 13:40:24.684] [DEBUG] QUERY OK db=22.2ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:43:29Z", "1.0.0", "parameter_config", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.685] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405545, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:43:29Z", message: "Current parameters version", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.685] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:43:29Z", "value" => "1.0.1"} [2026-07-13 13:40:24.720] [DEBUG] QUERY OK db=34.9ms idle=23.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:43:29Z", "1.0.1", "emv_config", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.720] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405546, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:43:29Z", message: "Current EMV config version", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.721] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:43:29Z", "value" => ""} [2026-07-13 13:40:24.742] [DEBUG] QUERY OK db=21.1ms idle=36.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:43:29Z", "keys_config", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.742] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405547, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:43:29Z", message: "Current keys config version", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.742] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:43:29Z", "value" => "1.0.0"} [2026-07-13 13:40:24.757] [DEBUG] QUERY OK db=14.0ms idle=22.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:43:29Z", "1.0.0", "application", 47128, ~N[2026-07-13 13:40:24], ~N[2026-07-13 13:40:24]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:24.757] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405548, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:43:29Z", message: "Current application version", status_log_id: 47128, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:24], updated_at: ~N[2026-07-13 13:40:24]}} [2026-07-13 13:40:24.757] [WARN ] Unexpected async result [2026-07-13 13:40:24.757] [WARN ] Unexpected async result [2026-07-13 13:40:31.171] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:40:36.172] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:43:36Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:43:36Z","value":"61"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:43:36Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:43:36Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:43:36Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:43:36Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:43:36Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:43:36Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:43:36Z","vendor":"MoreFun"} [2026-07-13 13:40:41.173] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:43:36Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:43:36Z", "value" => "61"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:43:36Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:43:36Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:43:36Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:43:36Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:43:36Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:43:36Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:43:36Z", "vendor" => "MoreFun"} [2026-07-13 13:40:46.174] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:40:46.174] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:40:46.174] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:40:46.175] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.1ms idle=643.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:40:46.176] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=630.9ms 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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:40:46.177] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.0ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:40:46.179] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.4ms idle=1.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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:40:46.180] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms idle=2.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:165 [2026-07-13 13:40:46.219] [DEBUG] QUERY OK source="pos_merchant" db=39.3ms idle=1.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:40:46.222] [DEBUG] QUERY OK db=1.3ms queue=0.6ms idle=1671.1ms 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 ["490603880000000"] [2026-07-13 13:40:46.222] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:40:46.222] [DEBUG] QUERY OK source="pos_terminal_data" db=0.3ms idle=42.2ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:40:46.223] [DEBUG] QUERY OK source="address" db=0.2ms idle=3.2ms 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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:40:46.223] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:40:46.224] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:40:46.309] [DEBUG] QUERY OK db=84.0ms idle=2.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "729f09b56dd4978247cfe6d2a1a9a2535789f7ff049d8b8571a6566566d5eda2", 5380, 914, ~U[2026-07-13 13:40:46Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:40:46], ~N[2026-07-13 13:40:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:40:46.310] [INFO ] AutoPushService: Created push log 33559 for MF919 params.zip [2026-07-13 13:40:46.310] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 5380, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:40:46.310] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:40:46.310] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:40:46.312] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms queue=0.2ms idle=87.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:40:46.315] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:40:46.353] [DEBUG] QUERY OK db=36.9ms idle=6.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "593e1c8bfef60b8bb632d890cec96ce37c76affc1f07a0aba612056284f5b913", 15394, 17947, ~U[2026-07-13 13:40:46Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:40:46], ~N[2026-07-13 13:40:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:40:46.353] [INFO ] AutoPushService: Created push log 33560 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:40:46.353] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 15394, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:40:46.353] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:40:46.353] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:40:46.356] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=43.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:40:46.356] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:40:46.357] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=3.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.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:40:46.357] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:40:46.359] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:40:46.359] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:40:46.359] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:40:46.359] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=3.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:40:46.360] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:40:46.360] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:40:46.360] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:40:46.361] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:40:46.478] [DEBUG] QUERY OK source="tms_terminals" db=116.8ms queue=0.1ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:40:46], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:40:46.479] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.1ms idle=117.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:40:46.479] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:40:46.480] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=0.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:40:46.480] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:40:46.499] [DEBUG] QUERY OK source="parameter_push_logs" db=17.9ms idle=1.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 [33, "application", ~N[2026-07-13 13:10:46]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:40:46.499] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:40:46.499] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:40:46.501] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=18.9ms 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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:40:46.502] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:40:46.502] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:40:46.504] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.4ms idle=1.7ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:40:46.615] [DEBUG] QUERY OK source="tms_terminals" db=110.5ms idle=2.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:40:46], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:40:46.771] [DEBUG] QUERY OK db=156.2ms queue=0.1ms idle=82.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:43:36Z", ~N[2026-07-13 13:40:46], ~N[2026-07-13 13:40:46]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:40:46.772] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47129, oid: "organization_id", upload_time: "2026-07-13T21:43:36Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:46], updated_at: ~N[2026-07-13 13:40:46]} [2026-07-13 13:40:46.772] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:43:36Z", "value" => "online"} [2026-07-13 13:40:46.893] [DEBUG] QUERY OK db=120.9ms idle=157.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:43:36Z", "online", "status", 47129, ~N[2026-07-13 13:40:46], ~N[2026-07-13 13:40:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:46.893] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405549, itemkey: "status", value: "online", timestamp: "2026-07-13T21:43:36Z", message: "Terminal status update", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:46], updated_at: ~N[2026-07-13 13:40:46]}} [2026-07-13 13:40:46.894] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:40:46.894] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:43:36Z", "value" => "61"} [2026-07-13 13:40:46.948] [DEBUG] QUERY OK db=53.4ms idle=122.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:43:36Z", "61", "battery", 47129, ~N[2026-07-13 13:40:46], ~N[2026-07-13 13:40:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:46.948] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405550, itemkey: "battery", value: "61", timestamp: "2026-07-13T21:43:36Z", message: "Battery level", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:46], updated_at: ~N[2026-07-13 13:40:46]}} [2026-07-13 13:40:46.948] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:43:36Z", "value" => "online"} [2026-07-13 13:40:47.028] [DEBUG] QUERY OK db=79.3ms idle=55.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:43:36Z", "online", "network", 47129, ~N[2026-07-13 13:40:46], ~N[2026-07-13 13:40:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.028] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405551, itemkey: "network", value: "online", timestamp: "2026-07-13T21:43:36Z", message: "Network connectivity", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:46], updated_at: ~N[2026-07-13 13:40:46]}} [2026-07-13 13:40:47.028] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:40:47.028] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:43:36Z", "value" => "0"} [2026-07-13 13:40:47.108] [DEBUG] QUERY OK db=79.8ms queue=0.1ms idle=81.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:43:36Z", "0", "cpu", 47129, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.109] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405552, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:43:36Z", message: "CPU usage percentage", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.109] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:43:36Z", "value" => "1.0.0"} [2026-07-13 13:40:47.189] [DEBUG] QUERY OK db=79.8ms idle=81.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:43:36Z", "1.0.0", "parameter_config", 47129, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.189] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405553, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:43:36Z", message: "Current parameters version", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.190] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:43:36Z", "value" => "1.0.1"} [2026-07-13 13:40:47.244] [DEBUG] QUERY OK db=54.5ms idle=81.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:43:36Z", "1.0.1", "emv_config", 47129, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.245] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405554, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:43:36Z", message: "Current EMV config version", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.245] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:43:36Z", "value" => ""} [2026-07-13 13:40:47.338] [DEBUG] QUERY OK db=92.9ms idle=56.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:43:36Z", "keys_config", 47129, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.338] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405555, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:43:36Z", message: "Current keys config version", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.339] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:43:36Z", "value" => "1.0.0"} [2026-07-13 13:40:47.417] [DEBUG] QUERY OK db=78.5ms idle=94.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:43:36Z", "1.0.0", "application", 47129, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.418] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405556, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:43:36Z", message: "Current application version", status_log_id: 47129, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.418] [INFO ] Received status update for terminal 98251226730001 [2026-07-13 13:40:47.419] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T21:43:38Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T21:43:38Z","value":"61"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T21:43:38Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T21:43:38Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T21:43:38Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T21:43:38Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T21:43:38Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T21:43:38Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98251226730001","uploadTime":"2026-07-13T21:43:38Z","vendor":"MoreFun"} [2026-07-13 13:40:47.419] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:43:38Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:43:38Z", "value" => "61"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:43:38Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:43:38Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:43:38Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:43:38Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:43:38Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:43:38Z", "value" => "1.0.0"}], "sn" => "98251226730001", "uploadTime" => "2026-07-13T21:43:38Z", "vendor" => "MoreFun"} [2026-07-13 13:40:47.420] [INFO ] Extracted versions for 98251226730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 13:40:47.420] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-07-13 13:40:47.420] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (MoreFun MF919) - missing version [2026-07-13 13:40:47.421] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=81.9ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 13:40:47.422] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=3.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.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 13:40:47.423] [DEBUG] QUERY OK source="parameter_template_values" db=0.4ms idle=1.1ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:40:47.425] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.7ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 13:40:47.426] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=2.7ms 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:165 [2026-07-13 13:40:47.466] [DEBUG] QUERY OK source="pos_merchant" db=40.4ms idle=1.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [193] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 13:40:47.468] [DEBUG] QUERY OK db=0.6ms queue=0.4ms idle=1918.2ms 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 ["490603880000000"] [2026-07-13 13:40:47.468] [INFO ] ParamsZipBuilder: Merchant info for merchantid=490603880000000 - business_name=Payana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 13:40:47.469] [DEBUG] QUERY OK source="pos_terminal_data" db=0.3ms idle=42.4ms 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 ["60388683"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 13:40:47.469] [DEBUG] QUERY OK source="address" db=0.3ms idle=2.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` = ?) [478] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 13:40:47.469] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730001, pos_merchant.merchantid="490603880000000" [2026-07-13 13:40:47.470] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730001 at priv/ota/98251226730001/params.zip [2026-07-13 13:40:47.579] [DEBUG] QUERY OK db=107.7ms idle=2.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "1f3b82cf4edbb0a475b6bf0c5c4e45ec753aa764f19b303ae93cf9defe338f67", 4931, 914, ~U[2026-07-13 13:40:47Z], "priv/ota/98251226730001/params.zip", 33, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 13:40:47.579] [INFO ] AutoPushService: Created push log 33561 for MF919 params.zip [2026-07-13 13:40:47.579] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 4931, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 13:40:47.579] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:40:47.580] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730001 [2026-07-13 13:40:47.580] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=44.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 13:40:47.584] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730001 at priv/ota/98251226730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 13:40:47.672] [DEBUG] QUERY OK db=86.9ms idle=5.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a69901bfec4fdc27ad10d64302c8d0e84a2825ffe3964626e3f5b9ad3b87f6a2", 5508, 17947, ~U[2026-07-13 13:40:47Z], "priv/ota/98251226730001/l3config.zip", 33, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 13:40:47.672] [INFO ] AutoPushService: Created push log 33562 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 13:40:47.672] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/l3config.zip", "requestId" => 5508, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 13:40:47.672] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730001 on topic: /ota/pFppbioOCKlo5c8E/98251226730001/update [2026-07-13 13:40:47.672] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730001 [2026-07-13 13:40:47.675] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms idle=92.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 13:40:47.675] [INFO ] KeysConfigService: Generating keys.json for 98251226730001 (MF919) [2026-07-13 13:40:47.676] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=3.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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 13:40:47.677] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 13:40:47.678] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 13:40:47.678] [ERROR] KeysConfigService: Failed to generate keys for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:40:47.678] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 13:40:47.679] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=3.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:40:47.680] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:40:47.680] [INFO ] AutoPushService: Auto-push completed for 98251226730001 [2026-07-13 13:40:47.681] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=4.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 13:40:47.682] [INFO ] Terminal updated: 98251226730001 [2026-07-13 13:40:47.751] [DEBUG] QUERY OK source="tms_terminals" db=68.2ms idle=3.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 13:40:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 13:40:47.753] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=70.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 13:40:47.753] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:40:47.754] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=0.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 13:40:47.754] [INFO ] VersionComplianceChecker: 98251226730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 13:40:47.771] [DEBUG] QUERY OK source="parameter_push_logs" db=16.2ms idle=1.2ms 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-07-13 13:10:47]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 13:40:47.771] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98251226730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 13:40:47.771] [INFO ] AutoPushService: Targeted application push for 98251226730001 (MoreFun MF919) [2026-07-13 13:40:47.773] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=17.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.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 13:40:47.774] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 13:40:47.774] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 13:40:47.775] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=1.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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 13:40:47.831] [DEBUG] QUERY OK source="tms_terminals" db=55.5ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:40:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 13:40:47.888] [DEBUG] QUERY OK db=56.0ms idle=56.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-07-13T21:43:38Z", ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 13:40:47.888] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47130, oid: "organization_id", upload_time: "2026-07-13T21:43:38Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]} [2026-07-13 13:40:47.888] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T21:43:38Z", "value" => "online"} [2026-07-13 13:40:47.940] [DEBUG] QUERY OK db=51.5ms idle=57.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T21:43:38Z", "online", "status", 47130, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.941] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405557, itemkey: "status", value: "online", timestamp: "2026-07-13T21:43:38Z", message: "Terminal status update", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.941] [INFO ] Setting terminal 98251226730001 status to 'online' from status itemkey [2026-07-13 13:40:47.941] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T21:43:38Z", "value" => "61"} [2026-07-13 13:40:47.993] [DEBUG] QUERY OK db=51.0ms idle=53.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T21:43:38Z", "61", "battery", 47130, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:47.993] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405558, itemkey: "battery", value: "61", timestamp: "2026-07-13T21:43:38Z", message: "Battery level", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:47.993] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T21:43:38Z", "value" => "online"} [2026-07-13 13:40:48.046] [DEBUG] QUERY OK db=52.7ms idle=53.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T21:43:38Z", "online", "network", 47130, ~N[2026-07-13 13:40:47], ~N[2026-07-13 13:40:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:48.047] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405559, itemkey: "network", value: "online", timestamp: "2026-07-13T21:43:38Z", message: "Network connectivity", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:47], updated_at: ~N[2026-07-13 13:40:47]}} [2026-07-13 13:40:48.047] [INFO ] Setting terminal 98251226730001 status to 'online' from network itemkey [2026-07-13 13:40:48.047] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T21:43:38Z", "value" => "0"} [2026-07-13 13:40:48.100] [DEBUG] QUERY OK db=52.1ms idle=55.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T21:43:38Z", "0", "cpu", 47130, ~N[2026-07-13 13:40:48], ~N[2026-07-13 13:40:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:48.101] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405560, itemkey: "cpu", value: "0", timestamp: "2026-07-13T21:43:38Z", message: "CPU usage percentage", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:48], updated_at: ~N[2026-07-13 13:40:48]}} [2026-07-13 13:40:48.101] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T21:43:38Z", "value" => "1.0.0"} [2026-07-13 13:40:48.180] [DEBUG] QUERY OK db=78.5ms idle=54.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T21:43:38Z", "1.0.0", "parameter_config", 47130, ~N[2026-07-13 13:40:48], ~N[2026-07-13 13:40:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:48.180] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405561, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T21:43:38Z", message: "Current parameters version", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:48], updated_at: ~N[2026-07-13 13:40:48]}} [2026-07-13 13:40:48.180] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T21:43:38Z", "value" => "1.0.1"} [2026-07-13 13:40:48.233] [DEBUG] QUERY OK db=52.9ms idle=80.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T21:43:38Z", "1.0.1", "emv_config", 47130, ~N[2026-07-13 13:40:48], ~N[2026-07-13 13:40:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:48.234] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405562, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T21:43:38Z", message: "Current EMV config version", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:48], updated_at: ~N[2026-07-13 13:40:48]}} [2026-07-13 13:40:48.234] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T21:43:38Z", "value" => ""} [2026-07-13 13:40:48.401] [DEBUG] QUERY OK db=166.9ms idle=54.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T21:43:38Z", "keys_config", 47130, ~N[2026-07-13 13:40:48], ~N[2026-07-13 13:40:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:48.402] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405563, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T21:43:38Z", message: "Current keys config version", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:48], updated_at: ~N[2026-07-13 13:40:48]}} [2026-07-13 13:40:48.402] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T21:43:38Z", "value" => "1.0.0"} [2026-07-13 13:40:48.522] [DEBUG] QUERY OK db=119.5ms idle=1.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T21:43:38Z", "1.0.0", "application", 47130, ~N[2026-07-13 13:40:48], ~N[2026-07-13 13:40:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 13:40:48.523] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405564, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T21:43:38Z", message: "Current application version", status_log_id: 47130, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 13:40:48], updated_at: ~N[2026-07-13 13:40:48]}} [2026-07-13 13:40:48.523] [WARN ] Unexpected async result [2026-07-13 13:40:48.523] [WARN ] Unexpected async result [2026-07-13 13:40:48.523] [WARN ] Unexpected async result [2026-07-13 13:40:48.523] [WARN ] Unexpected async result [2026-07-13 13:42:33.144] [INFO ] Running offline device check... [2026-07-13 13:42:33.145] [INFO ] Starting offline device check... [2026-07-13 13:42:33.146] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=596.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:42:33.152] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=263.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.157] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms queue=0.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.160] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.160] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.162] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.177] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.180] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=0.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.183] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=11.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.198] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.214] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=13.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.216] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.227] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.228] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.232] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.238] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.239] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.239] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.241] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:42:33.241] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 13:42:33.241] [INFO ] Offline device check completed successfully [2026-07-13 13:47:28.180] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 13:47:28.181] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1460.4ms 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-07-13 13:47:28.182] [DEBUG] QUERY OK source="filter_usage" db=0.4ms idle=459.3ms 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-07-13 13:47:28.182] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 13:47:33.242] [INFO ] Running offline device check... [2026-07-13 13:47:33.242] [INFO ] Starting offline device check... [2026-07-13 13:47:33.244] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=680.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:47:33.251] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=510.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.257] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.259] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.259] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.260] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.261] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.262] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.263] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.275] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.279] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.280] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.294] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=12.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.299] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.300] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.301] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.313] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.314] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=12.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.320] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.322] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.325] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.326] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.326] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.331] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.331] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.336] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.336] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.337] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.338] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:47:33.338] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 13:47:33.338] [INFO ] Offline device check completed successfully [2026-07-13 13:52:33.339] [INFO ] Running offline device check... [2026-07-13 13:52:33.339] [INFO ] Starting offline device check... [2026-07-13 13:52:33.341] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=1721.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:52:33.347] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=720.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.351] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.352] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.354] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.354] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.356] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.357] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.358] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.369] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.373] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms queue=0.2ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.375] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.377] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.390] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=13.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.392] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.395] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.409] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.410] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=13.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.411] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.418] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.422] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.423] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.423] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.427] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.8ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.429] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.430] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.431] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.433] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.437] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.440] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:52:33.440] [INFO ] Offline device check completed. Found 41 offline devices, updated 0 statuses. [2026-07-13 13:52:33.441] [INFO ] Offline device check completed successfully [2026-07-13 13:57:33.441] [INFO ] Running offline device check... [2026-07-13 13:57:33.441] [INFO ] Starting offline device check... [2026-07-13 13:57:33.443] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=882.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 13:57:33.452] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=838.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.460] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.461] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.462] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.463] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.463] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.464] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.472] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.482] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.486] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=9.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.488] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.505] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=14.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.507] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.508] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.510] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.524] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.2ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.580] [DEBUG] QUERY OK source="tms_terminals" db=56.1ms idle=13.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 13:57:33], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 13:57:33.581] [INFO ] Terminal 98251226730001 back online [2026-07-13 13:57:33.584] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=20.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.595] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.596] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.599] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.600] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.607] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.608] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.610] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.611] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.614] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 13:57:33.614] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 13:57:33.614] [INFO ] Offline device check completed successfully [2026-07-13 14:02:28.183] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 14:02:28.185] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.1ms idle=808.4ms 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-07-13 14:02:28.186] [DEBUG] QUERY OK source="filter_usage" db=0.5ms idle=765.3ms 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-07-13 14:02:28.186] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 14:02:33.617] [INFO ] Running offline device check... [2026-07-13 14:02:33.617] [INFO ] Starting offline device check... [2026-07-13 14:02:33.618] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1186.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:02:33.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=184.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.629] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.631] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.631] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.633] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.634] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.634] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.637] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.641] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.641] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.648] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.651] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.654] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.655] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.656] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.8ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=12.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.671] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.672] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.673] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.685] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.715] [DEBUG] QUERY OK source="tms_terminals" db=29.0ms idle=12.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:02:33], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:02:33.715] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:02:33.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=30.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.717] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.731] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=15.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.737] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms queue=0.1ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.743] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.752] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.3ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.754] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.755] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.757] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.758] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.761] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:02:33.762] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:02:33.762] [INFO ] Offline device check completed successfully [2026-07-13 14:07:28.306] [INFO ] Starting scheduled rule validation [2026-07-13 14:07:28.306] [DEBUG] Validating missing assignments [2026-07-13 14:07:28.307] [DEBUG] QUERY OK source="terminal_group_rules" db=0.6ms queue=0.1ms idle=978.7ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 14:07:28.308] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=651.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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 14:07:28.309] [DEBUG] Re-applied 0 rules during validation [2026-07-13 14:07:28.309] [DEBUG] Validating invalid assignments [2026-07-13 14:07:28.309] [DEBUG] Validating rule consistency [2026-07-13 14:07:28.309] [DEBUG] Updating group terminal counts [2026-07-13 14:07:28.310] [DEBUG] QUERY OK source="terminal_groups" db=0.2ms idle=2.0ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 14:07:28.310] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=1.5ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 14:07:28.311] [DEBUG] QUERY OK source="terminal_groups" db=0.2ms idle=0.6ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 14:07:28.311] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms idle=0.5ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 14:07:28.312] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms queue=0.1ms idle=0.5ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 14:07:28.312] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.3ms idle=0.6ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 14:07:28.313] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.2ms idle=0.6ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 14:07:28.313] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.3ms idle=0.6ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 14:07:28.313] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 14:07:28.313] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 14:07:33.763] [INFO ] Running offline device check... [2026-07-13 14:07:33.763] [INFO ] Starting offline device check... [2026-07-13 14:07:33.766] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=418.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:07:33.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms idle=108.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.779] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.781] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.781] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.782] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.784] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.785] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.825] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=19.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.847] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.861] [DEBUG] QUERY OK source="tms_terminals" db=13.3ms idle=15.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:07:33], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:07:33.861] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:07:33.861] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.862] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.870] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.870] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.873] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.875] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.881] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.884] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.891] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:07:33.892] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:07:33.892] [INFO ] Offline device check completed successfully [2026-07-13 14:12:33.892] [INFO ] Running offline device check... [2026-07-13 14:12:33.892] [INFO ] Starting offline device check... [2026-07-13 14:12:33.894] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=1213.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:12:33.900] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=729.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.906] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.907] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.911] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.914] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.915] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.921] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.924] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.926] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.926] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.927] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.940] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=13.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.943] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.956] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.975] [DEBUG] QUERY OK source="tms_terminals" db=18.5ms idle=12.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:12:33], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:12:33.975] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:12:33.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=19.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.977] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.983] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.983] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.986] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.987] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.987] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.991] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.992] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.992] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.993] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.994] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.996] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.998] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:33.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:12:34.000] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:12:34.000] [INFO ] Offline device check completed successfully [2026-07-13 14:17:28.187] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 14:17:28.188] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=1202.6ms 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-07-13 14:17:28.189] [DEBUG] QUERY OK source="filter_usage" db=0.4ms idle=200.6ms 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-07-13 14:17:28.189] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 14:17:34.000] [INFO ] Running offline device check... [2026-07-13 14:17:34.000] [INFO ] Starting offline device check... [2026-07-13 14:17:34.002] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=996.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:17:34.009] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=301.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.016] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms queue=1.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.019] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.026] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.027] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.033] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.051] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=12.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.055] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.056] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.057] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.068] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.082] [DEBUG] QUERY OK source="tms_terminals" db=13.2ms idle=11.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:17:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:17:34.082] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:17:34.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=14.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.096] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.097] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.098] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.103] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.103] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.104] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.105] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.107] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.107] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.108] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.110] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:17:34.111] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:17:34.111] [INFO ] Offline device check completed successfully [2026-07-13 14:22:34.113] [INFO ] Running offline device check... [2026-07-13 14:22:34.113] [INFO ] Starting offline device check... [2026-07-13 14:22:34.115] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1185.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:22:34.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=184.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.129] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.130] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.133] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.136] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.143] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.164] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.179] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.211] [DEBUG] QUERY OK source="tms_terminals" db=31.7ms idle=12.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:22:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:22:34.211] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:22:34.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=32.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.220] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.224] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.229] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.230] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.231] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.231] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:22:34.238] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:22:34.238] [INFO ] Offline device check completed successfully [2026-07-13 14:27:34.238] [INFO ] Running offline device check... [2026-07-13 14:27:34.238] [INFO ] Starting offline device check... [2026-07-13 14:27:34.240] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=504.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:27:34.247] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=497.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.254] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.1ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.256] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.257] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.257] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.259] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.260] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.266] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.267] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.273] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.279] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.297] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=13.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.298] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.300] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.301] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.301] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.344] [DEBUG] QUERY OK source="tms_terminals" db=28.6ms idle=13.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:27:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:27:34.344] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:27:34.345] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=29.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.345] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.351] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.352] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.357] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.358] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.365] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.367] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.367] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.368] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.369] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.370] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.370] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:27:34.371] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:27:34.371] [INFO ] Offline device check completed successfully [2026-07-13 14:32:28.191] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 14:32:28.192] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=1432.0ms 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-07-13 14:32:28.193] [DEBUG] QUERY OK source="filter_usage" db=0.3ms queue=0.1ms idle=584.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-07-13 14:32:28.193] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 14:32:34.371] [INFO ] Running offline device check... [2026-07-13 14:32:34.371] [INFO ] Starting offline device check... [2026-07-13 14:32:34.373] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=1611.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:32:34.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=746.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.384] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.386] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.386] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.387] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.389] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.392] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.393] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.399] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.403] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.420] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.422] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.423] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.424] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.440] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.505] [DEBUG] QUERY OK source="tms_terminals" db=64.4ms queue=0.1ms idle=16.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:32:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:32:34.505] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:32:34.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=65.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.507] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.513] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.514] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.517] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.518] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.519] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.522] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.523] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.524] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.526] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.527] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.528] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.529] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.530] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.531] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.532] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:32:34.532] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:32:34.533] [INFO ] Offline device check completed successfully [2026-07-13 14:37:34.533] [INFO ] Running offline device check... [2026-07-13 14:37:34.533] [INFO ] Starting offline device check... [2026-07-13 14:37:34.535] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=756.1ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:37:34.543] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=22.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.548] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.549] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.551] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.552] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.552] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.553] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.554] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.555] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.559] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.560] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.570] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.8ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=12.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.589] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.591] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.603] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.623] [DEBUG] QUERY OK source="tms_terminals" db=19.6ms idle=12.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:37:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:37:34.623] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:37:34.625] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=20.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.625] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.633] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.636] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.637] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.641] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.643] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.644] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.644] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.646] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.646] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.647] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.648] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.648] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:37:34.650] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:37:34.650] [INFO ] Offline device check completed successfully [2026-07-13 14:42:34.651] [INFO ] Running offline device check... [2026-07-13 14:42:34.651] [INFO ] Starting offline device check... [2026-07-13 14:42:34.653] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1249.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:42:34.658] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=249.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.667] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.671] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.674] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.675] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.683] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.688] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.689] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.690] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.694] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.707] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.708] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=13.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.709] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.710] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.711] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.724] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.749] [DEBUG] QUERY OK source="tms_terminals" db=24.1ms idle=12.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:42:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:42:34.749] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:42:34.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=25.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.756] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.758] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.761] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.763] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.767] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.768] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.769] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.774] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.776] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.777] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.778] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.779] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:42:34.779] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:42:34.779] [INFO ] Offline device check completed successfully [2026-07-13 14:47:28.194] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 14:47:28.195] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=990.9ms 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-07-13 14:47:28.196] [DEBUG] QUERY OK source="filter_usage" db=0.5ms idle=391.0ms 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-07-13 14:47:28.196] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 14:47:34.780] [INFO ] Running offline device check... [2026-07-13 14:47:34.780] [INFO ] Starting offline device check... [2026-07-13 14:47:34.784] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=977.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:47:34.789] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=562.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.794] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.795] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.797] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.799] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.800] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.802] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.806] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.813] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.818] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.820] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.821] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.822] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.835] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=13.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.839] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.840] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.840] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.854] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.875] [DEBUG] QUERY OK source="tms_terminals" db=20.0ms idle=14.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:47:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:47:34.875] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:47:34.876] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=21.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.884] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.893] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.894] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.898] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.901] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.906] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:47:34.906] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:47:34.906] [INFO ] Offline device check completed successfully [2026-07-13 14:52:34.906] [INFO ] Running offline device check... [2026-07-13 14:52:34.906] [INFO ] Starting offline device check... [2026-07-13 14:52:34.908] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.1ms idle=739.3ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:52:34.914] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=674.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.918] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.920] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.921] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.921] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.922] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.924] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.938] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms queue=0.1ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.945] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.957] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.958] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=12.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.959] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.960] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.961] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.962] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:34.998] [DEBUG] QUERY OK source="tms_terminals" db=21.1ms idle=14.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:52:34], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:52:34.998] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:52:34.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=22.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.000] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.008] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.011] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.012] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.016] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.024] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:52:35.024] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:52:35.024] [INFO ] Offline device check completed successfully [2026-07-13 14:57:35.026] [INFO ] Running offline device check... [2026-07-13 14:57:35.026] [INFO ] Starting offline device check... [2026-07-13 14:57:35.031] [DEBUG] QUERY OK source="tms_terminals" db=3.9ms idle=854.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 14:57:35.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms queue=0.4ms idle=404.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.046] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=11.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.048] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.4ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.049] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.050] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.051] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.052] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.055] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.072] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.079] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.081] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.082] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.098] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=16.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.101] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.103] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.104] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.143] [DEBUG] QUERY OK source="tms_terminals" db=22.6ms idle=16.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 14:57:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 14:57:35.144] [INFO ] Terminal 98251226730001 back online [2026-07-13 14:57:35.145] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=23.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.154] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.158] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.160] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.167] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.170] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.171] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.174] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.175] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.177] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.178] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.179] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.181] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 14:57:35.181] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 14:57:35.181] [INFO ] Offline device check completed successfully [2026-07-13 15:02:28.197] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 15:02:28.198] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.3ms idle=1196.9ms 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-07-13 15:02:28.199] [DEBUG] QUERY OK source="filter_usage" db=0.5ms idle=196.0ms 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-07-13 15:02:28.200] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 15:02:35.181] [INFO ] Running offline device check... [2026-07-13 15:02:35.181] [INFO ] Starting offline device check... [2026-07-13 15:02:35.183] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=1161.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:02:35.189] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=160.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.196] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.196] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.198] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.199] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.199] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.201] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.204] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.205] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms queue=0.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.220] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.221] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=15.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.237] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.239] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.253] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.280] [DEBUG] QUERY OK source="tms_terminals" db=26.1ms idle=13.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:02:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:02:35.280] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:02:35.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=27.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.290] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.291] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.294] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.295] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.296] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.304] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.306] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.309] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.311] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.313] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:02:35.313] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:02:35.314] [INFO ] Offline device check completed successfully [2026-07-13 15:07:28.314] [INFO ] Starting scheduled rule validation [2026-07-13 15:07:28.315] [DEBUG] Validating missing assignments [2026-07-13 15:07:28.315] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms queue=0.1ms idle=472.0ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-07-13 15:07:28.316] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=458.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 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-07-13 15:07:28.317] [DEBUG] Re-applied 0 rules during validation [2026-07-13 15:07:28.317] [DEBUG] Validating invalid assignments [2026-07-13 15:07:28.317] [DEBUG] Validating rule consistency [2026-07-13 15:07:28.317] [DEBUG] Updating group terminal counts [2026-07-13 15:07:28.318] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=1.9ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-07-13 15:07:28.318] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms idle=1.4ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-07-13 15:07:28.319] [DEBUG] QUERY OK source="terminal_groups" db=0.2ms idle=0.6ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-07-13 15:07:28.319] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms idle=0.6ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-07-13 15:07:28.319] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms idle=0.5ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-07-13 15:07:28.320] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.2ms idle=0.5ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-07-13 15:07:28.320] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.2ms idle=0.5ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-07-13 15:07:28.321] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms idle=0.6ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-07-13 15:07:28.321] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-07-13 15:07:28.321] [INFO ] Rule validation completed - applied 0 fixes [2026-07-13 15:07:35.314] [INFO ] Running offline device check... [2026-07-13 15:07:35.314] [INFO ] Starting offline device check... [2026-07-13 15:07:35.316] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=1454.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:07:35.322] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=454.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.328] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.331] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.336] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.338] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.343] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.349] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.1ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.356] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.356] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.370] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.371] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=13.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.372] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.374] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.375] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms queue=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.402] [DEBUG] QUERY OK source="tms_terminals" db=12.5ms queue=0.1ms idle=13.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:07:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:07:35.402] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:07:35.403] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.417] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=12.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.421] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.422] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.422] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.426] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.431] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=0.1ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.433] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.437] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.441] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.8ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.442] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.443] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.444] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.446] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.448] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:07:35.448] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:07:35.448] [INFO ] Offline device check completed successfully [2026-07-13 15:12:35.449] [INFO ] Running offline device check... [2026-07-13 15:12:35.450] [INFO ] Starting offline device check... [2026-07-13 15:12:35.451] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=625.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:12:35.461] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=571.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms queue=0.1ms idle=9.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.467] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.470] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.471] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.471] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.474] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=1.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.478] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.479] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.485] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms queue=0.1ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.493] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.494] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.507] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.509] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.510] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.511] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.512] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.513] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.8ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.550] [DEBUG] QUERY OK source="tms_terminals" db=25.1ms idle=12.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:12:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:12:35.551] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:12:35.552] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=26.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.555] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.563] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms queue=0.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=1.9ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms queue=0.3ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.575] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.579] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.580] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.583] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.585] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.589] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms queue=0.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.593] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.596] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:12:35.596] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:12:35.596] [INFO ] Offline device check completed successfully [2026-07-13 15:17:28.201] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 15:17:28.205] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms queue=0.1ms idle=453.5ms 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-07-13 15:17:28.206] [DEBUG] QUERY OK source="filter_usage" db=0.6ms idle=310.1ms 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-07-13 15:17:28.206] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 15:17:35.596] [INFO ] Running offline device check... [2026-07-13 15:17:35.596] [INFO ] Starting offline device check... [2026-07-13 15:17:35.598] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=829.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:17:35.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=703.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=9.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.615] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.618] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.620] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.621] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.624] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.626] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.631] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms queue=0.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.641] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.647] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.649] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=6.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.649] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.665] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.666] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=15.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.671] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.672] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.731] [DEBUG] QUERY OK source="tms_terminals" db=46.5ms idle=12.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:17:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:17:35.731] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:17:35.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=47.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.743] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.746] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.747] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.748] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.751] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.755] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.758] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.759] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.763] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.764] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.2ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.765] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.766] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.767] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.768] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:17:35.769] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:17:35.769] [INFO ] Offline device check completed successfully [2026-07-13 15:22:35.770] [INFO ] Running offline device check... [2026-07-13 15:22:35.770] [INFO ] Starting offline device check... [2026-07-13 15:22:35.772] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=878.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:22:35.779] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=120.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.785] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.785] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.786] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.787] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.787] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.789] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.793] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.794] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.800] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms queue=0.4ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.805] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.806] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.807] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.818] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.819] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=11.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.820] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.821] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.822] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.823] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.834] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.846] [DEBUG] QUERY OK source="tms_terminals" db=11.2ms idle=11.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:22:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:22:35.846] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:22:35.847] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=12.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.848] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.853] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.854] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.856] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.857] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.862] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.863] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.863] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.864] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.865] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.869] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.870] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:22:35.870] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:22:35.870] [INFO ] Offline device check completed successfully [2026-07-13 15:27:35.871] [INFO ] Running offline device check... [2026-07-13 15:27:35.871] [INFO ] Starting offline device check... [2026-07-13 15:27:35.874] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=1312.9ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:27:35.881] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms decode=1.4ms queue=0.1ms idle=313.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.889] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.891] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.894] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.898] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.907] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.911] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.924] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=12.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.927] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.930] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.943] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.0ms queue=0.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.975] [DEBUG] QUERY OK source="tms_terminals" db=31.8ms queue=0.3ms idle=12.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:27:35], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:27:35.975] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:27:35.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=33.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.977] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.985] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.986] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.990] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.991] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.993] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.996] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.998] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:35.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.000] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.001] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.002] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.003] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.003] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.004] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:27:36.005] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:27:36.005] [INFO ] Offline device check completed successfully [2026-07-13 15:32:28.208] [INFO ] Performing scheduled filter cache refresh... [2026-07-13 15:32:28.209] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=829.0ms 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-07-13 15:32:28.210] [DEBUG] QUERY OK source="filter_usage" db=0.3ms idle=258.4ms 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-07-13 15:32:28.210] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-07-13 15:32:36.006] [INFO ] Running offline device check... [2026-07-13 15:32:36.006] [INFO ] Starting offline device check... [2026-07-13 15:32:36.008] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=606.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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:32:36.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=58.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.019] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.025] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.026] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.028] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.032] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.042] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.047] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.061] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=13.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.062] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.065] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.077] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.100] [DEBUG] QUERY OK source="tms_terminals" db=22.5ms idle=12.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:32:36], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:32:36.100] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:32:36.101] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=23.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.110] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.114] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.115] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.116] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.121] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.121] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.122] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.123] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.124] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.129] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:32:36.129] [INFO ] Offline device check completed. Found 41 offline devices, updated 1 statuses. [2026-07-13 15:32:36.130] [INFO ] Offline device check completed successfully [2026-07-13 15:34:07.438] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 15:34:07.438] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T06:43:57Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T06:43:57Z","value":"75"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T06:43:57Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T06:43:57Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T06:43:57Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T06:43:57Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T06:43:57Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T06:43:57Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-13T06:43:57Z","vendor":"MoreFun"} [2026-07-13 15:34:07.439] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T06:43:57Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T06:43:57Z", "value" => "75"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T06:43:57Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T06:43:57Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T06:43:57Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T06:43:57Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T06:43:57Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T06:43:57Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-13T06:43:57Z", "vendor" => "MoreFun"} [2026-07-13 15:34:07.439] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 15:34:07.439] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 15:34:07.439] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 15:34:07.441] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=1474.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 15:34:07.442] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=752.9ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 15:34:07.442] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=1.2ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 15:34:07.444] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.4ms idle=1.3ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 15:34:07.445] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=2.0ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 15:34:07.485] [DEBUG] QUERY OK source="pos_merchant" db=40.2ms idle=0.9ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 15:34:07.487] [DEBUG] QUERY OK db=0.7ms queue=0.5ms idle=1531.1ms 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 ["501983400000000"] [2026-07-13 15:34:07.487] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 15:34:07.488] [DEBUG] QUERY OK source="pos_terminal_data" db=0.6ms idle=42.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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 15:34:07.489] [DEBUG] QUERY OK source="address" db=0.3ms idle=3.0ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 15:34:07.489] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 15:34:07.491] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 15:34:07.523] [DEBUG] QUERY OK db=30.5ms idle=3.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "74cb8a3cdbab244a98ec6571323ac5345b1b6f03b2fe9264cfede7af54d35c00", 7716, 916, ~U[2026-07-13 15:34:07Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 15:34:07.523] [INFO ] AutoPushService: Created push log 33563 for MF919 params.zip [2026-07-13 15:34:07.523] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 7716, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 15:34:07.523] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 15:34:07.523] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 15:34:07.524] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=34.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 15:34:07.529] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 15:34:07.561] [DEBUG] QUERY OK db=31.4ms idle=7.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "471984056983da57c1568c3de7f02226dded7accbd5e208231d74a0cfd3bbb1d", 7780, 17947, ~U[2026-07-13 15:34:07Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 15:34:07.561] [INFO ] AutoPushService: Created push log 33564 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 15:34:07.561] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 7780, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 15:34:07.562] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 15:34:07.562] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 15:34:07.563] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=37.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 15:34:07.563] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 15:34:07.564] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=2.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 15:34:07.564] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 15:34:07.566] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 15:34:07.566] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 15:34:07.566] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 15:34:07.567] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=3.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 15:34:07.568] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 15:34:07.568] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 15:34:07.568] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 15:34:07.568] [INFO ] Terminal updated: 98250623730001 [2026-07-13 15:34:07.601] [DEBUG] QUERY OK source="tms_terminals" db=32.2ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 15:34:07], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 15:34:07.603] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=33.1ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 15:34:07.603] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 15:34:07.604] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 15:34:07.604] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 15:34:07.656] [DEBUG] QUERY OK source="parameter_push_logs" db=51.8ms idle=1.0ms 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 [19, "application", ~N[2026-07-13 15:04:07]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 15:34:07.657] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 15:34:07.657] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 15:34:07.658] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=52.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 15:34:07.658] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=1.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 15:34:07.659] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 15:34:07.660] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=1.2ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 15:34:07.679] [DEBUG] QUERY OK source="tms_terminals" db=16.8ms idle=3.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:34:07], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 15:34:07.704] [DEBUG] QUERY OK db=23.6ms queue=0.3ms idle=19.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-13T06:43:57Z", ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 15:34:07.704] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47131, oid: "organization_id", upload_time: "2026-07-13T06:43:57Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]} [2026-07-13 15:34:07.704] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T06:43:57Z", "value" => "online"} [2026-07-13 15:34:07.738] [DEBUG] QUERY OK db=32.9ms queue=0.1ms idle=15.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T06:43:57Z", "online", "status", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.738] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405565, itemkey: "status", value: "online", timestamp: "2026-07-13T06:43:57Z", message: "Terminal status update", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.739] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 15:34:07.740] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=35.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:34:07], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 15:34:07.740] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T06:43:57Z", "value" => "75"} [2026-07-13 15:34:07.771] [DEBUG] QUERY OK db=31.2ms idle=1.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T06:43:57Z", "75", "battery", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.772] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405566, itemkey: "battery", value: "75", timestamp: "2026-07-13T06:43:57Z", message: "Battery level", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.772] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T06:43:57Z", "value" => "online"} [2026-07-13 15:34:07.789] [DEBUG] QUERY OK db=17.3ms idle=32.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T06:43:57Z", "online", "network", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.790] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405567, itemkey: "network", value: "online", timestamp: "2026-07-13T06:43:57Z", message: "Network connectivity", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.790] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 15:34:07.791] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=18.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:34:07], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-07-13 15:34:07.791] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T06:43:57Z", "value" => "0"} [2026-07-13 15:34:07.811] [DEBUG] QUERY OK db=19.8ms idle=1.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T06:43:57Z", "0", "cpu", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.811] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405568, itemkey: "cpu", value: "0", timestamp: "2026-07-13T06:43:57Z", message: "CPU usage percentage", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.811] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T06:43:57Z", "value" => "1.0.0"} [2026-07-13 15:34:07.844] [DEBUG] QUERY OK db=32.3ms idle=20.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T06:43:57Z", "1.0.0", "parameter_config", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.844] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405569, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T06:43:57Z", message: "Current parameters version", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.844] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T06:43:57Z", "value" => "1.0.1"} [2026-07-13 15:34:07.868] [DEBUG] QUERY OK db=23.3ms idle=33.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T06:43:57Z", "1.0.1", "emv_config", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.868] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405570, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T06:43:57Z", message: "Current EMV config version", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.869] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T06:43:57Z", "value" => ""} [2026-07-13 15:34:07.950] [DEBUG] QUERY OK db=81.4ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T06:43:57Z", "keys_config", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:07.951] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405571, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T06:43:57Z", message: "Current keys config version", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:07.951] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T06:43:57Z", "value" => "1.0.0"} [2026-07-13 15:34:08.093] [DEBUG] QUERY OK db=141.7ms idle=82.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T06:43:57Z", "1.0.0", "application", 47131, ~N[2026-07-13 15:34:07], ~N[2026-07-13 15:34:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:08.093] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405572, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T06:43:57Z", message: "Current application version", status_log_id: 47131, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:07], updated_at: ~N[2026-07-13 15:34:07]}} [2026-07-13 15:34:08.109] [DEBUG] QUERY OK source="tms_terminals" db=15.3ms idle=143.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:34:08], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-07-13 15:34:08.109] [WARN ] Unexpected async result [2026-07-13 15:34:08.109] [WARN ] Unexpected async result [2026-07-13 15:34:46.093] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 15:34:46.093] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T06:44:36Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T06:44:36Z","value":"75"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T06:44:36Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T06:44:36Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T06:44:36Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T06:44:36Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T06:44:36Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T06:44:36Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-13T06:44:36Z","vendor":"MoreFun"} [2026-07-13 15:34:46.094] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T06:44:36Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T06:44:36Z", "value" => "75"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T06:44:36Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T06:44:36Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T06:44:36Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T06:44:36Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T06:44:36Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T06:44:36Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-13T06:44:36Z", "vendor" => "MoreFun"} [2026-07-13 15:34:46.094] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 15:34:46.094] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 15:34:46.094] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 15:34:46.097] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms queue=0.1ms idle=1126.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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 15:34:46.098] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.2ms idle=275.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 15:34:46.099] [DEBUG] QUERY OK source="parameter_template_values" db=1.4ms idle=1.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 15:34:46.102] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.4ms idle=2.5ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 15:34:46.103] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms queue=0.1ms idle=3.0ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 15:34:46.143] [DEBUG] QUERY OK source="pos_merchant" db=40.0ms idle=1.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 15:34:46.145] [DEBUG] QUERY OK db=0.6ms queue=0.7ms idle=1187.7ms 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 ["501983400000000"] [2026-07-13 15:34:46.145] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 15:34:46.145] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms idle=42.2ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 15:34:46.146] [DEBUG] QUERY OK source="address" db=0.4ms idle=2.6ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 15:34:46.146] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 15:34:46.150] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 15:34:46.205] [DEBUG] QUERY OK db=52.7ms idle=6.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "d111d51246e036bb474193831f137a994dbd722db0cceb8c1cc774ebf7610c49", 1605, 916, ~U[2026-07-13 15:34:46Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 15:34:46.205] [INFO ] AutoPushService: Created push log 33565 for MF919 params.zip [2026-07-13 15:34:46.205] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1605, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 15:34:46.205] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 15:34:46.205] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 15:34:46.211] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=63.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 15:34:46.216] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 15:34:46.245] [DEBUG] QUERY OK db=28.2ms idle=12.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "34c64b45fafda1cec68b4c48da5647b823e1e353444332f8736cee7fa63ec0e4", 22178, 17947, ~U[2026-07-13 15:34:46Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 15:34:46.245] [INFO ] AutoPushService: Created push log 33566 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 15:34:46.246] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 22178, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 15:34:46.246] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 15:34:46.246] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 15:34:46.248] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms queue=0.6ms idle=35.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 15:34:46.248] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 15:34:46.251] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.7ms idle=4.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 15:34:46.251] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 15:34:46.253] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 15:34:46.253] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 15:34:46.253] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 15:34:46.257] [DEBUG] QUERY OK source="config_file_versions" db=2.9ms idle=5.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 15:34:46.259] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 15:34:46.259] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 15:34:46.261] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=8.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 15:34:46.263] [INFO ] Terminal updated: 98250623730001 [2026-07-13 15:34:46.288] [DEBUG] QUERY OK source="tms_terminals" db=22.9ms queue=1.7ms idle=6.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 15:34:46], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 15:34:46.290] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.2ms idle=28.0ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 15:34:46.292] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=2.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 15:34:46.293] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=2.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 15:34:46.294] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 15:34:46.316] [DEBUG] QUERY OK source="parameter_push_logs" db=21.0ms idle=2.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 [19, "application", ~N[2026-07-13 15:04:46]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 15:34:46.316] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 15:34:46.316] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 15:34:46.317] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=23.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 15:34:46.318] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=1.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 15:34:46.319] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 15:34:46.319] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms idle=1.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 15:34:46.345] [DEBUG] QUERY OK source="tms_terminals" db=25.6ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:34:46], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 15:34:46.375] [DEBUG] QUERY OK db=29.0ms idle=26.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-13T06:44:36Z", ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 15:34:46.375] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47132, oid: "organization_id", upload_time: "2026-07-13T06:44:36Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]} [2026-07-13 15:34:46.375] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T06:44:36Z", "value" => "online"} [2026-07-13 15:34:46.398] [DEBUG] QUERY OK db=22.8ms idle=30.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T06:44:36Z", "online", "status", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.400] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405573, itemkey: "status", value: "online", timestamp: "2026-07-13T06:44:36Z", message: "Terminal status update", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.400] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 15:34:46.400] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T06:44:36Z", "value" => "75"} [2026-07-13 15:34:46.433] [DEBUG] QUERY OK db=32.7ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T06:44:36Z", "75", "battery", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.433] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405574, itemkey: "battery", value: "75", timestamp: "2026-07-13T06:44:36Z", message: "Battery level", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.433] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T06:44:36Z", "value" => "online"} [2026-07-13 15:34:46.457] [DEBUG] QUERY OK db=23.1ms idle=35.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T06:44:36Z", "online", "network", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.457] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405575, itemkey: "network", value: "online", timestamp: "2026-07-13T06:44:36Z", message: "Network connectivity", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.457] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 15:34:46.458] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T06:44:36Z", "value" => "0"} [2026-07-13 15:34:46.481] [DEBUG] QUERY OK db=23.0ms idle=25.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T06:44:36Z", "0", "cpu", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.482] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405576, itemkey: "cpu", value: "0", timestamp: "2026-07-13T06:44:36Z", message: "CPU usage percentage", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.482] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T06:44:36Z", "value" => "1.0.0"} [2026-07-13 15:34:46.500] [DEBUG] QUERY OK db=17.3ms idle=24.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T06:44:36Z", "1.0.0", "parameter_config", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.500] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405577, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T06:44:36Z", message: "Current parameters version", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.500] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T06:44:36Z", "value" => "1.0.1"} [2026-07-13 15:34:46.526] [DEBUG] QUERY OK db=24.8ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T06:44:36Z", "1.0.1", "emv_config", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.526] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405578, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T06:44:36Z", message: "Current EMV config version", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.526] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T06:44:36Z", "value" => ""} [2026-07-13 15:34:46.558] [DEBUG] QUERY OK db=31.5ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T06:44:36Z", "keys_config", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.558] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405579, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T06:44:36Z", message: "Current keys config version", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.558] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T06:44:36Z", "value" => "1.0.0"} [2026-07-13 15:34:46.582] [DEBUG] QUERY OK db=22.9ms idle=33.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T06:44:36Z", "1.0.0", "application", 47132, ~N[2026-07-13 15:34:46], ~N[2026-07-13 15:34:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:34:46.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405580, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T06:44:36Z", message: "Current application version", status_log_id: 47132, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:34:46], updated_at: ~N[2026-07-13 15:34:46]}} [2026-07-13 15:34:46.582] [WARN ] Unexpected async result [2026-07-13 15:34:46.582] [WARN ] Unexpected async result [2026-07-13 15:37:36.131] [INFO ] Running offline device check... [2026-07-13 15:37:36.131] [INFO ] Starting offline device check... [2026-07-13 15:37:36.133] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.1ms idle=765.7ms 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 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-07-13 15:37:36.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms idle=153.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.144] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.145] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.147] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.147] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.151] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.154] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.6ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.170] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=10.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.172] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.174] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.2ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=17.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.196] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.208] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.232] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms idle=12.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:37:36], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:796 [2026-07-13 15:37:36.232] [INFO ] Terminal 98251226730001 back online [2026-07-13 15:37:36.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=24.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.243] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.248] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.248] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.249] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.252] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.253] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.253] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.254] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.254] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-07-13 15:37:36.255] [INFO ] Offline device check completed. Found 40 offline devices, updated 1 statuses. [2026-07-13 15:37:36.256] [INFO ] Offline device check completed successfully [2026-07-13 15:38:57.972] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 57µs Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FRgwT1Y7PAAkWnNCEQ4vOiFWACgGAG4o8hs5eyqOS75vCyDlW2qftG-Z", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 15:39:03.194] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index Parameters: %{} Session: %{"_csrf_token" => "-pCz3BMOwmF4RwkVvdqNrGCr", "live_socket_id" => "users_sessions:fzEq8k-1XMHmcKoU6h_MXJpBafjYBrCjLDhd8YxZ6vc=", "user_token" => <<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>} [2026-07-13 15:39:03.197] [DEBUG] QUERY OK source="users_tokens" db=2.9ms idle=1968.7ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 15:39:03.194421Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-07-13 15:39:03.203] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms queue=0.5ms idle=1219.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 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-07-13 15:39:03.205] [DEBUG] QUERY OK source="app_packages" db=1.0ms idle=584.4ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-07-13 15:39:03.207] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=3.4ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-07-13 15:39:03.209] [DEBUG] QUERY OK source="terminal_groups" db=2.0ms idle=2.7ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [42] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-07-13 15:39:03.210] [DEBUG] Replied in 15ms [2026-07-13 15:39:03.210] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 15:39:03.214] [DEBUG] QUERY OK source="tms_terminals" db=3.9ms idle=3.1ms 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 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 15:39:03.215] [DEBUG] Replied in 4ms [2026-07-13 15:39:04.212] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 35µs Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FRgwT1Y7PAAkWnNCEQ4vOiFWACgGAG4o8hs5eyqOS75vCyDlW2qftG-Z", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "1", "_track_static" => %{"0" => "http://demo.ctrmv.com:4059/assets/app.css", "1" => "http://demo.ctrmv.com:4059/assets/app.js"}, "vsn" => "2.0.0"} [2026-07-13 15:39:05.338] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index Parameters: %{} Session: %{"_csrf_token" => "-pCz3BMOwmF4RwkVvdqNrGCr", "live_socket_id" => "users_sessions:fzEq8k-1XMHmcKoU6h_MXJpBafjYBrCjLDhd8YxZ6vc=", "user_token" => <<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>} [2026-07-13 15:39:05.341] [DEBUG] QUERY OK source="users_tokens" db=1.8ms idle=1114.2ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<127, 49, 42, 242, 79, 181, 92, 193, 230, 112, 170, 20, 234, 31, 204, 92, 154, 65, 105, 248, 216, 6, 176, 163, 44, 56, 93, 241, 140, 89, 234, 247>>, "session", ~U[2026-07-13 15:39:05.339021Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-07-13 15:39:05.342] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.2ms idle=711.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 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-07-13 15:39:05.345] [DEBUG] QUERY OK source="app_packages" db=1.8ms idle=363.3ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-07-13 15:39:05.345] [DEBUG] QUERY OK source="tms_terminals" db=0.2ms idle=2.6ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-07-13 15:39:05.347] [DEBUG] QUERY OK source="terminal_groups" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [42] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-07-13 15:39:05.347] [DEBUG] Replied in 8ms [2026-07-13 15:39:05.347] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-07-13 15:39:05.349] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.1ms idle=1.9ms 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 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-07-13 15:39:05.349] [DEBUG] Replied in 2ms [2026-07-13 15:40:01.301] [INFO ] Received status update for terminal 98250623730001 [2026-07-13 15:40:01.301] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-07-13T06:49:51Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-07-13T06:49:51Z","value":"75"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-07-13T06:49:51Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-07-13T06:49:51Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-07-13T06:49:51Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-07-13T06:49:51Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-07-13T06:49:51Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-07-13T06:49:51Z","value":"1.0.0"}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-07-13T06:49:51Z","vendor":"MoreFun"} [2026-07-13 15:40:01.302] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T06:49:51Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T06:49:51Z", "value" => "75"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T06:49:51Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T06:49:51Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T06:49:51Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T06:49:51Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T06:49:51Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T06:49:51Z", "value" => "1.0.0"}], "sn" => "98250623730001", "uploadTime" => "2026-07-13T06:49:51Z", "vendor" => "MoreFun"} [2026-07-13 15:40:01.302] [INFO ] Extracted versions for 98250623730001: %{application: "1.0.0", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-07-13 15:40:01.302] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-07-13 15:40:01.302] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-07-13 15:40:01.304] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=869.6ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-07-13 15:40:01.305] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.4ms idle=523.7ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-07-13 15:40:01.306] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms queue=0.6ms idle=1.4ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 15:40:01.308] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=0.5ms idle=1.9ms 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.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-07-13 15:40:01.310] [DEBUG] QUERY OK source="pos_terminal" db=0.7ms idle=2.6ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-07-13 15:40:01.349] [DEBUG] QUERY OK source="pos_merchant" db=39.2ms idle=1.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [200] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-07-13 15:40:01.351] [DEBUG] QUERY OK db=0.6ms queue=0.5ms idle=1373.2ms 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 ["501983400000000"] [2026-07-13 15:40:01.351] [INFO ] ParamsZipBuilder: Merchant info for merchantid=501983400000000 - business_name=Kabana, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-07-13 15:40:01.352] [DEBUG] QUERY OK source="pos_terminal_data" db=1.0ms idle=41.4ms 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 ["98340726"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-07-13 15:40:01.353] [DEBUG] QUERY OK source="address" db=0.4ms idle=3.0ms 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` = ?) [489] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-07-13 15:40:01.353] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="501983400000000" [2026-07-13 15:40:01.363] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-07-13 15:40:01.389] [DEBUG] QUERY OK db=24.9ms idle=11.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "ddaa4a94c6325dae74adc2087aa807d70fe2407bb01dcb6600ac0d68a85cfe74", 1893, 916, ~U[2026-07-13 15:40:01Z], "priv/ota/98250623730001/params.zip", 19, %{"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" => "60", "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", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", "EXTERNAL_PINPAD" => "0", ...}, "full", 10, "MoreFun", "MF919", "parameter", "missing_version", "1.0.0", ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-07-13 15:40:01.389] [INFO ] AutoPushService: Created push log 33567 for MF919 params.zip [2026-07-13 15:40:01.389] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/params.zip", "requestId" => 1893, "type" => "tms_command", "version" => "1.0.0"} [2026-07-13 15:40:01.389] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 15:40:01.389] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-07-13 15:40:01.390] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=36.4ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-07-13 15:40:01.395] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-07-13 15:40:01.413] [DEBUG] QUERY OK db=17.0ms idle=7.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "9e3a7a755671bd41d75369481591d5439138cdc481cf743b38d7c5a8ddc510cd", 1957, 17947, ~U[2026-07-13 15:40:01Z], "priv/ota/98250623730001/l3config.zip", 19, "full", "MoreFun", "MF919", "emv_config", "missing_version", "1.0.1", ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-07-13 15:40:01.413] [INFO ] AutoPushService: Created push log 33568 for MF919 l3config.zip (version: 1.0.1) [2026-07-13 15:40:01.414] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98250623730001/l3config.zip", "requestId" => 1957, "type" => "tms_command", "version" => "1.0.1"} [2026-07-13 15:40:01.414] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-07-13 15:40:01.414] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-07-13 15:40:01.416] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=23.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-07-13 15:40:01.416] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-07-13 15:40:01.418] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.2ms idle=3.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-07-13 15:40:01.418] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-07-13 15:40:01.419] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-07-13 15:40:01.419] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 15:40:01.419] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-07-13 15:40:01.421] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms idle=3.8ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 15:40:01.421] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 15:40:01.421] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-07-13 15:40:01.422] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=4.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` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-07-13 15:40:01.422] [INFO ] Terminal updated: 98250623730001 [2026-07-13 15:40:01.467] [DEBUG] QUERY OK source="tms_terminals" db=44.7ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-07-13 15:40:01], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-07-13 15:40:01.468] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=45.5ms 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) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-07-13 15:40:01.469] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.2ms 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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 15:40:01.470] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=1.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-07-13 15:40:01.470] [INFO ] VersionComplianceChecker: 98250623730001 — outdated configs: [{:application, "1.0.0", "3.8.5"}] [2026-07-13 15:40:01.491] [DEBUG] QUERY OK source="parameter_push_logs" db=20.5ms idle=0.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 [19, "application", ~N[2026-07-13 15:10:01]] ↳ anonymous fn/4 in TmsCore.TerminalManagement.VersionComplianceChecker.check_and_remediate/4, at: lib/tms_core/terminal_management/version_compliance_checker.ex:49 [2026-07-13 15:40:01.491] [INFO ] VersionComplianceChecker: Triggering re-push of application for 98250623730001 (reported: 1.0.0, target: 3.8.5) [2026-07-13 15:40:01.491] [INFO ] AutoPushService: Targeted application push for 98250623730001 (MoreFun MF919) [2026-07-13 15:40:01.494] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=0.1ms idle=22.1ms 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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/4, at: lib/tms_core/terminal_management/auto_push_service.ex:63 [2026-07-13 15:40:01.495] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=4.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.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-07-13 15:40:01.498] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-07-13 15:40:01.499] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=3.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` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-07-13 15:40:01.515] [DEBUG] QUERY OK source="tms_terminals" db=15.3ms idle=4.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-07-13 15:40:01], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-07-13 15:40:01.532] [DEBUG] QUERY OK db=15.7ms idle=16.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-07-13T06:49:51Z", ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-07-13 15:40:01.532] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 47133, oid: "organization_id", upload_time: "2026-07-13T06:49:51Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]} [2026-07-13 15:40:01.532] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-07-13T06:49:51Z", "value" => "online"} [2026-07-13 15:40:01.564] [DEBUG] QUERY OK db=31.2ms idle=17.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-07-13T06:49:51Z", "online", "status", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.564] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405581, itemkey: "status", value: "online", timestamp: "2026-07-13T06:49:51Z", message: "Terminal status update", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.565] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-07-13 15:40:01.565] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-07-13T06:49:51Z", "value" => "75"} [2026-07-13 15:40:01.566] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 42 terminals [2026-07-13 15:40:01.588] [DEBUG] QUERY OK db=22.5ms idle=33.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-07-13T06:49:51Z", "75", "battery", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.588] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405582, itemkey: "battery", value: "75", timestamp: "2026-07-13T06:49:51Z", message: "Battery level", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.588] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-07-13T06:49:51Z", "value" => "online"} [2026-07-13 15:40:01.604] [DEBUG] QUERY OK db=15.0ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-07-13T06:49:51Z", "online", "network", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.604] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405583, itemkey: "network", value: "online", timestamp: "2026-07-13T06:49:51Z", message: "Network connectivity", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.604] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-07-13 15:40:01.604] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-07-13T06:49:51Z", "value" => "0"} [2026-07-13 15:40:01.604] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 42 terminals [2026-07-13 15:40:01.621] [DEBUG] QUERY OK db=16.6ms idle=16.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-07-13T06:49:51Z", "0", "cpu", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.621] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405584, itemkey: "cpu", value: "0", timestamp: "2026-07-13T06:49:51Z", message: "CPU usage percentage", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.622] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-07-13T06:49:51Z", "value" => "1.0.0"} [2026-07-13 15:40:01.648] [DEBUG] QUERY OK db=25.9ms idle=18.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-07-13T06:49:51Z", "1.0.0", "parameter_config", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.649] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405585, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-07-13T06:49:51Z", message: "Current parameters version", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.649] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-07-13T06:49:51Z", "value" => "1.0.1"} [2026-07-13 15:40:01.674] [DEBUG] QUERY OK db=24.2ms idle=28.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-07-13T06:49:51Z", "1.0.1", "emv_config", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.674] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405586, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-07-13T06:49:51Z", message: "Current EMV config version", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.674] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-07-13T06:49:51Z", "value" => ""} [2026-07-13 15:40:01.702] [DEBUG] QUERY OK db=26.9ms queue=0.1ms idle=26.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-07-13T06:49:51Z", "keys_config", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.702] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405587, itemkey: "keys_config", value: nil, timestamp: "2026-07-13T06:49:51Z", message: "Current keys config version", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}} [2026-07-13 15:40:01.702] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-07-13T06:49:51Z", "value" => "1.0.0"} [2026-07-13 15:40:01.719] [DEBUG] QUERY OK db=17.1ms idle=28.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current application version", "2026-07-13T06:49:51Z", "1.0.0", "application", 47133, ~N[2026-07-13 15:40:01], ~N[2026-07-13 15:40:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-07-13 15:40:01.720] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 405588, itemkey: "application", value: "1.0.0", timestamp: "2026-07-13T06:49:51Z", message: "Current application version", status_log_id: 47133, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-07-13 15:40:01], updated_at: ~N[2026-07-13 15:40:01]}}