[2026-08-19 08:02:54.255] [INFO ] [Ysp.Scheduler] Started. SFTP in 18h 57m, MIS in 22h 57m [2026-08-19 08:02:54.314] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-08-19 08:02:54.334] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}} [2026-08-19 08:02:54.334] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"}, []}} [2026-08-19 08:02:54.334] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"}, []}} [2026-08-19 08:02:54.334] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/e096b30b6512c75cb26818b62a472ac2c10c0a1f64256baf78949ba44a57a61e/merged"}, []}} [2026-08-19 08:02:54.335] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/a228e7854e9e5547679c59d489f24fe1b2b60fecff295512f5a20c356dfd61b8/merged"}, []}} [2026-08-19 08:02:57.074] [DEBUG] Tzdata polling for update. [2026-08-19 08:02:57.910] [INFO ] Terminal Event Listener started and listening to events [2026-08-19 08:02:57.912] [INFO ] Rule Validation Worker started - will run every hour [2026-08-19 08:02:57.912] [INFO ] Building initial filter cache... [2026-08-19 08:02:57.928] [DEBUG] Tzdata polling shows the loaded tz database is up to date. [2026-08-19 08:02:57.946] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=1.9ms idle=974.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-08-19 08:02:57.964] [DEBUG] QUERY OK source="filter_usage" db=0.6ms queue=0.7ms idle=35.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-08-19 08:02:57.964] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 8 models [2026-08-19 08:02:58.182] [INFO ] Device phoenix_client_tms_apps_sushmitha connected [2026-08-19 08:02:58.217] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4406 (http) [2026-08-19 08:02:58.251] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4406 [2026-08-19 08:03:17.128] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:03:17.128] [INFO ] Incoming JSON payload: {"oid":"f531a442-f096-4395-bdb1-f8af1ba86237","sn":"98251226730001","uploadTime":"2026-08-19T08:03:17Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"ram_free_mb","value":"1029","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:03:17Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:03: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:03:17.153] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "f531a442-f096-4395-bdb1-f8af1ba86237", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:03:17Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:03:17Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:03:17Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:03:17Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:03:17Z", "value" => "1029"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:03:17Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:03:17Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:03:17Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:03:17Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:03:17Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:03: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:03:17Z", "vendor" => "morefun"} [2026-08-19 08:03:17.153] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:03:17.180] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:03:17.180] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:03:17.186] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=1.7ms idle=1009.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-08-19 08:03:17.187] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.5ms idle=7.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-08-19 08:03:17.187] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:03:17.208] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=1.6ms idle=20.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:140 [2026-08-19 08:03:18.843] [INFO ] GET / [2026-08-19 08:03:18.904] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-08-19 08:03:18.985] [DEBUG] QUERY OK source="users_tokens" db=1.0ms queue=1.2ms idle=1214.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:03:18.956004Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-08-19 08:03:19.188] [INFO ] Sent 200 in 345ms [2026-08-19 08:03:20.008] [DEBUG] QUERY OK source="tms_terminals" db=2763.5ms queue=0.9ms idle=48.8ms UPDATE `tms_terminals` SET `model` = ?, `vendor` = ?, `updated_at` = ? WHERE `id` = ? ["kiosk_launcher", "morefun", ~N[2026-08-19 08:03:17], 33] ↳ TmsCore.TerminalManagement.update_terminal/2, at: lib/tms_core/terminal_management.ex:41 [2026-08-19 08:03:20.018] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:03:20.019] [INFO ] Event published: terminal_updated [2026-08-19 08:03:20.019] [DEBUG] Processing terminal event: terminal_updated [2026-08-19 08:03:20.019] [INFO ] Processing terminal_updated event for terminal 33 [2026-08-19 08:03:20.021] [INFO ] Changed fields: [:vendor, :model] [2026-08-19 08:03:20.040] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=0.8ms idle=853.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-08-19 08:03:20], 33] ↳ TmsCore.TerminalManagement.TerminalEventDispatcher.terminal_updated/2, at: lib/tms_core/terminal_management/terminal_event_dispatcher.ex:52 [2026-08-19 08:03:20.045] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms queue=1.7ms idle=40.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-08-19 08:03:20.058] [DEBUG] QUERY OK source="terminal_group_rules" db=0.9ms queue=0.8ms idle=12.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_rules_to_terminal/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:213 [2026-08-19 08:03:20.059] [INFO ] Applied 0 rules to terminal 98251226730001 [2026-08-19 08:03:25.532] [INFO ] GET /users/settings [2026-08-19 08:03:25.532] [DEBUG] Processing with PlatformWeb.UserSettingsLive.edit/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-08-19 08:03:25.535] [DEBUG] QUERY OK source="users_tokens" db=2.0ms queue=0.1ms idle=781.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:03:25.533237Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-08-19 08:03:25.621] [INFO ] Sent 200 in 88ms [2026-08-19 08:03:25.672] [DEBUG] QUERY OK source="tms_terminals" db=5629.3ms queue=1.7ms idle=0.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-08-19 08:03:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:03:25.679] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:03:25.680] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.1ms 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.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:03:25.762] [DEBUG] QUERY OK source="tms_terminals" db=40.4ms queue=40.4ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:03:25], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:03:25.783] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.4ms queue=0.6ms idle=18.3ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:03:26.013] [DEBUG] QUERY OK db=207.9ms queue=1.1ms idle=20.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["f531a442-f096-4395-bdb1-f8af1ba86237", 33, "2026-08-19T08:03:17Z", ~N[2026-08-19 08:03:25], ~N[2026-08-19 08:03:25]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:03:26.022] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73137, oid: "f531a442-f096-4395-bdb1-f8af1ba86237", upload_time: "2026-08-19T08:03:17Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:25], updated_at: ~N[2026-08-19 08:03:25]} [2026-08-19 08:03:26.022] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:03:17Z", "value" => "morefun"} [2026-08-19 08:03:26.098] [DEBUG] QUERY OK db=74.9ms queue=0.6ms idle=9.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "morefun", "vendor", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.098] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736011, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.098] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:03:17Z", "value" => "kiosk_launcher"} [2026-08-19 08:03:26.187] [DEBUG] QUERY OK db=87.8ms queue=0.1ms idle=0.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "kiosk_launcher", "model", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.187] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736015, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.187] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:03:17Z", "value" => "1.0"} [2026-08-19 08:03:26.271] [DEBUG] QUERY OK db=78.3ms queue=1.9ms idle=0.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "1.0", "app_version", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.271] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736019, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.272] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:03:17Z", "value" => "13"} [2026-08-19 08:03:26.417] [DEBUG] QUERY OK db=143.7ms queue=0.5ms idle=65.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "13", "android_version", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.417] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736021, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.417] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:03:17Z", "value" => "1029"} [2026-08-19 08:03:26.475] [DEBUG] QUERY OK db=57.3ms idle=146.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "1029", "ram_free_mb", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.475] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736024, itemkey: "ram_free_mb", value: "1029", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.476] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:03:17Z", "value" => "WIFI"} [2026-08-19 08:03:26.563] [DEBUG] QUERY OK db=87.3ms idle=59.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "WIFI", "network_type", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.564] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736028, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.564] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:03:17Z", "value" => "true"} [2026-08-19 08:03:26.641] [DEBUG] QUERY OK db=76.9ms idle=89.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "true", "kiosk_active", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.642] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736030, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.642] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:03:17Z", "value" => ""} [2026-08-19 08:03:26.705] [DEBUG] QUERY OK db=62.3ms queue=0.5ms idle=78.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:03:17Z", "sim_operator", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.705] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736033, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.705] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"} [2026-08-19 08:03:26.778] [DEBUG] QUERY OK db=72.5ms idle=64.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "UNKNOWN", "sim_number", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736036, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.779] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"} [2026-08-19 08:03:26.822] [DEBUG] QUERY OK db=41.6ms idle=75.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "UNKNOWN", "sim_iccid", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.822] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736039, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.822] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"} [2026-08-19 08:03:26.871] [DEBUG] QUERY OK db=48.1ms queue=0.1ms idle=44.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "UNKNOWN", "sim_imsi", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.871] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736042, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.872] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"} [2026-08-19 08:03:26.912] [DEBUG] QUERY OK db=40.2ms idle=49.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "UNKNOWN", "sim_iccid2", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.912] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736045, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.913] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:03:17Z", "value" => "UNKNOWN"} [2026-08-19 08:03:26.973] [DEBUG] QUERY OK db=59.8ms idle=41.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "UNKNOWN", "sim_imsi2", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:26.973] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736048, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:26.975] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:03:17Z", "value" => "6"} [2026-08-19 08:03:27.008] [DEBUG] QUERY OK db=32.5ms idle=63.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "6", "data_usage_mb", 73137, ~N[2026-08-19 08:03:26], ~N[2026-08-19 08:03:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:27.008] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736051, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:26], updated_at: ~N[2026-08-19 08:03:26]}} [2026-08-19 08:03:27.010] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:03:17Z", "value" => "0"} [2026-08-19 08:03:27.070] [DEBUG] QUERY OK db=58.3ms queue=0.7ms idle=37.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:17Z", "0", "mobile_data_mb", 73137, ~N[2026-08-19 08:03:27], ~N[2026-08-19 08:03:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:27.070] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736054, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:27], updated_at: ~N[2026-08-19 08:03:27]}} [2026-08-19 08:03:27.071] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:03: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), 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), Scanne" <> ...} [2026-08-19 08:03:27.150] [DEBUG] QUERY OK db=77.3ms idle=63.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03: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), 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), Scanne" <> ..., "installed_apps", 73137, ~N[2026-08-19 08:03:27], ~N[2026-08-19 08:03:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:27.151] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736057, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:03:17Z", message: nil, status_log_id: 73137, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:27], updated_at: ~N[2026-08-19 08:03:27]}} [2026-08-19 08:03:27.151] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:03:27.151] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:03:18Z","org.device":[{"itemkey":"battery","value":82,"timestamp":"2026-08-19T12:03:18Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:03:18Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:03:18Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:03:18Z","message":""}]} [2026-08-19 08:03:27.152] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:03:18Z", "value" => 82}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:03:18Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:03:18Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:03:18Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:03:18Z"} [2026-08-19 08:03:27.152] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:03:27.154] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=83.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:03:27.154] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:03:27.207] [DEBUG] QUERY OK source="tms_terminals" db=51.1ms queue=1.0ms idle=5.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:03:27], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:03:27.208] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms 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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:03:27.273] [DEBUG] QUERY OK source="tms_terminals" db=64.9ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:03:27], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:03:27.275] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.6ms queue=0.1ms idle=65.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:03:28.354] [DEBUG] QUERY OK db=1074.7ms queue=3.3ms idle=2.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:03:18Z", ~N[2026-08-19 08:03:27], ~N[2026-08-19 08:03:27]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:03:28.354] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73140, oid: "org-id-placeholder", upload_time: "2026-08-19T12:03:18Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:27], updated_at: ~N[2026-08-19 08:03:27]} [2026-08-19 08:03:28.354] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:03:18Z", "value" => 82} [2026-08-19 08:03:29.038] [DEBUG] QUERY OK db=683.4ms idle=157.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:03:18Z", "82", "battery", 73140, ~N[2026-08-19 08:03:28], ~N[2026-08-19 08:03:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:29.039] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736059, itemkey: "battery", value: "82", timestamp: "2026-08-19T12:03:18Z", message: nil, status_log_id: 73140, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:28], updated_at: ~N[2026-08-19 08:03:28]}} [2026-08-19 08:03:29.039] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:03:18Z", "value" => 50} [2026-08-19 08:03:29.126] [DEBUG] QUERY OK db=84.8ms queue=1.6ms idle=685.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:03:18Z", "50", "memory", 73140, ~N[2026-08-19 08:03:29], ~N[2026-08-19 08:03:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:29.132] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736063, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:03:18Z", message: "Normal", status_log_id: 73140, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:29], updated_at: ~N[2026-08-19 08:03:29]}} [2026-08-19 08:03:29.134] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:03:18Z", "value" => 50} [2026-08-19 08:03:29.264] [DEBUG] QUERY OK db=130.4ms idle=95.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:03:18Z", "50", "cpu", 73140, ~N[2026-08-19 08:03:29], ~N[2026-08-19 08:03:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:29.265] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736065, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:03:18Z", message: nil, status_log_id: 73140, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:29], updated_at: ~N[2026-08-19 08:03:29]}} [2026-08-19 08:03:29.265] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:03:18Z", "value" => "online"} [2026-08-19 08:03:29.335] [DEBUG] QUERY OK db=69.0ms idle=64.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:03:18Z", "online", "network", 73140, ~N[2026-08-19 08:03:29], ~N[2026-08-19 08:03:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:29.335] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736067, itemkey: "network", value: "online", timestamp: "2026-08-19T12:03:18Z", message: nil, status_log_id: 73140, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:29], updated_at: ~N[2026-08-19 08:03:29]}} [2026-08-19 08:03:29.335] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:03:36.442] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 25µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "OyATUzIcNj0Udj4hFhdvCi8aDyUEOwcMzQFfDQUyUAdnQGY3v_dfOJ7V", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://localhost:4406/assets/app.css", "1" => "http://localhost:4406/assets/app.js"}, "vsn" => "2.0.0"} [2026-08-19 08:03:36.698] [DEBUG] MOUNT PlatformWeb.UserSettingsLive Parameters: %{} Session: %{"_csrf_token" => "AqU5vMcDA7ZOGP69YEkCKq0Z", "live_socket_id" => "users_sessions:vlekrmBiHBKdgn7HKmGWOYqHXCxToD09BA_bfO940f4=", "user_token" => <<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>} [2026-08-19 08:03:36.702] [DEBUG] QUERY OK source="users_tokens" db=2.3ms idle=1947.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:03:36.699548Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-08-19 08:03:36.702] [DEBUG] Replied in 5ms [2026-08-19 08:03:36.908] [WARN ] navigate event to "http://localhost:4406/admin/settlements/payouts" failed because you are redirecting across live_sessions. A full page reload will be performed instead [2026-08-19 08:03:37.309] [INFO ] GET /admin/settlements/payouts [2026-08-19 08:03:37.310] [DEBUG] Processing with PlatformWeb.SettlementLive.PayoutDashboard.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-08-19 08:03:37.311] [DEBUG] QUERY OK source="users_tokens" db=0.8ms idle=608.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:03:37.310430Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-08-19 08:03:37.340] [DEBUG] QUERY OK source="payout_batches" db=6.4ms queue=0.6ms idle=625.3ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 ORDER BY p0.`payout_date` DESC LIMIT 100 [] ↳ PlatformWeb.SettlementLive.PayoutDashboard.mount/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:49 [2026-08-19 08:03:37.361] [DEBUG] QUERY OK source="bank_confirmation_batches" db=0.5ms queue=0.4ms idle=129.5ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:135 [2026-08-19 08:03:37.362] [DEBUG] QUERY OK source="bank_confirmation_batches" db=0.8ms idle=21.9ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:137 [2026-08-19 08:03:37.375] [INFO ] Sent 200 in 65ms [2026-08-19 08:03:39.566] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 33µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "cwQtUSV0FQMCXxYmf2ZvcjI0PDdzQHsd2uxdS9vGChLi86YKkqWt81KG", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://localhost:4406/assets/app.css", "1" => "http://localhost:4406/assets/app.js"}, "vsn" => "2.0.0"} [2026-08-19 08:03:39.970] [DEBUG] MOUNT PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{} Session: %{"_csrf_token" => "AqU5vMcDA7ZOGP69YEkCKq0Z", "live_socket_id" => "users_sessions:vlekrmBiHBKdgn7HKmGWOYqHXCxToD09BA_bfO940f4=", "user_token" => <<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>} [2026-08-19 08:03:39.971] [DEBUG] QUERY OK source="users_tokens" db=0.7ms queue=0.3ms idle=1218.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:03:39.970644Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-08-19 08:03:39.973] [DEBUG] QUERY OK source="payout_batches" db=1.0ms idle=735.4ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 ORDER BY p0.`payout_date` DESC LIMIT 100 [] ↳ PlatformWeb.SettlementLive.PayoutDashboard.mount/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:49 [2026-08-19 08:03:39.973] [DEBUG] Replied in 3ms [2026-08-19 08:03:39.974] [DEBUG] QUERY OK source="bank_confirmation_batches" db=0.4ms idle=0.7ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:135 [2026-08-19 08:03:39.975] [DEBUG] QUERY OK source="bank_confirmation_batches" db=0.4ms idle=0.2ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:137 [2026-08-19 08:03:47.235] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:03:47.236] [INFO ] Incoming JSON payload: {"oid":"c8db4724-8f16-42aa-bb8e-01411325db72","sn":"98251226730001","uploadTime":"2026-08-19T08:03:47Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"ram_free_mb","value":"1026","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:03:47Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:03: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:03:47.239] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "c8db4724-8f16-42aa-bb8e-01411325db72", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:03:47Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:03:47Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:03:47Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:03:47Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:03:47Z", "value" => "1026"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:03:47Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:03:47Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:03:47Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:03:47Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:03:47Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:03: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:03:47Z", "vendor" => "morefun"} [2026-08-19 08:03:47.239] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:03:47.240] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:03:47.241] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:03:47.245] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms queue=0.9ms idle=1534.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-08-19 08:03:47.251] [DEBUG] QUERY OK source="parameter_templates" db=3.6ms queue=2.5ms idle=994.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-08-19 08:03:47.251] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:03:47.254] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.4ms idle=7.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:140 [2026-08-19 08:03:47.254] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:03:47.289] [DEBUG] QUERY OK source="tms_terminals" db=34.3ms idle=0.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:03:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:03:47.289] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:03:47.290] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=33.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:1184 [2026-08-19 08:03:47.339] [DEBUG] QUERY OK source="tms_terminals" db=48.7ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:03:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:03:47.340] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms idle=49.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:03:47.383] [DEBUG] QUERY OK db=41.5ms idle=2.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["c8db4724-8f16-42aa-bb8e-01411325db72", 33, "2026-08-19T08:03:47Z", ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:03:47.383] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73142, oid: "c8db4724-8f16-42aa-bb8e-01411325db72", upload_time: "2026-08-19T08:03:47Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]} [2026-08-19 08:03:47.384] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:03:47Z", "value" => "morefun"} [2026-08-19 08:03:47.411] [DEBUG] QUERY OK db=25.4ms idle=45.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "morefun", "vendor", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.411] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736070, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.411] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:03:47Z", "value" => "kiosk_launcher"} [2026-08-19 08:03:47.496] [DEBUG] QUERY OK db=84.8ms idle=28.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "kiosk_launcher", "model", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.497] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736073, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.497] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:03:47Z", "value" => "1.0"} [2026-08-19 08:03:47.567] [DEBUG] QUERY OK db=69.8ms queue=0.5ms idle=86.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "1.0", "app_version", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.568] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736076, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.568] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:03:47Z", "value" => "13"} [2026-08-19 08:03:47.617] [DEBUG] QUERY OK db=49.3ms idle=71.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "13", "android_version", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.618] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736079, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.618] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:03:47Z", "value" => "1026"} [2026-08-19 08:03:47.678] [DEBUG] QUERY OK db=59.5ms idle=50.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "1026", "ram_free_mb", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.678] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736082, itemkey: "ram_free_mb", value: "1026", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.678] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:03:47Z", "value" => "WIFI"} [2026-08-19 08:03:47.724] [DEBUG] QUERY OK db=45.6ms queue=0.1ms idle=61.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "WIFI", "network_type", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.726] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736085, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.726] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:03:47Z", "value" => "true"} [2026-08-19 08:03:47.801] [DEBUG] QUERY OK db=73.5ms idle=49.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "true", "kiosk_active", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.801] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736088, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.801] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:03:47Z", "value" => ""} [2026-08-19 08:03:47.855] [DEBUG] QUERY OK db=52.5ms idle=77.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:03:47Z", "sim_operator", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.855] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736091, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.855] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"} [2026-08-19 08:03:47.890] [DEBUG] QUERY OK db=33.9ms idle=55.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "UNKNOWN", "sim_number", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.890] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736094, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.891] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"} [2026-08-19 08:03:47.959] [DEBUG] QUERY OK db=67.7ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "UNKNOWN", "sim_iccid", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:47.960] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736097, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:47.960] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"} [2026-08-19 08:03:48.118] [DEBUG] QUERY OK db=158.1ms idle=70.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "UNKNOWN", "sim_imsi", 73142, ~N[2026-08-19 08:03:47], ~N[2026-08-19 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:48.118] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736101, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:47], updated_at: ~N[2026-08-19 08:03:47]}} [2026-08-19 08:03:48.118] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"} [2026-08-19 08:03:48.190] [DEBUG] QUERY OK db=71.4ms idle=159.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "UNKNOWN", "sim_iccid2", 73142, ~N[2026-08-19 08:03:48], ~N[2026-08-19 08:03:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:48.190] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736103, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:48], updated_at: ~N[2026-08-19 08:03:48]}} [2026-08-19 08:03:48.191] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:03:47Z", "value" => "UNKNOWN"} [2026-08-19 08:03:48.274] [DEBUG] QUERY OK db=83.4ms idle=72.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "UNKNOWN", "sim_imsi2", 73142, ~N[2026-08-19 08:03:48], ~N[2026-08-19 08:03:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:48.275] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736106, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:48], updated_at: ~N[2026-08-19 08:03:48]}} [2026-08-19 08:03:48.275] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:03:47Z", "value" => "6"} [2026-08-19 08:03:48.348] [DEBUG] QUERY OK db=72.7ms idle=17.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "6", "data_usage_mb", 73142, ~N[2026-08-19 08:03:48], ~N[2026-08-19 08:03:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:48.348] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736109, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:48], updated_at: ~N[2026-08-19 08:03:48]}} [2026-08-19 08:03:48.349] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:03:47Z", "value" => "0"} [2026-08-19 08:03:48.420] [DEBUG] QUERY OK db=70.7ms idle=74.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03:47Z", "0", "mobile_data_mb", 73142, ~N[2026-08-19 08:03:48], ~N[2026-08-19 08:03:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:48.420] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736112, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:48], updated_at: ~N[2026-08-19 08:03:48]}} [2026-08-19 08:03:48.422] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:03: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), 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), Scanne" <> ...} [2026-08-19 08:03:48.491] [DEBUG] QUERY OK db=68.9ms idle=73.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:03: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), 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), Scanne" <> ..., "installed_apps", 73142, ~N[2026-08-19 08:03:48], ~N[2026-08-19 08:03:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:03:48.492] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736115, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:03:47Z", message: nil, status_log_id: 73142, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:03:48], updated_at: ~N[2026-08-19 08:03:48]}} [2026-08-19 08:03:51.447] [DEBUG] HANDLE EVENT "view_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{"id" => "20", "value" => ""} [2026-08-19 08:03:51.449] [DEBUG] QUERY OK source="payout_batches" db=0.6ms queue=0.7ms idle=1184.1ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 WHERE (p0.`id` = ?) [20] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:654 [2026-08-19 08:03:51.454] [DEBUG] QUERY OK source="payout_items" db=0.4ms queue=0.5ms idle=186.9ms SELECT p0.`id`, p0.`payout_batch_id`, p0.`settlement_mis_id`, p0.`settlement_date`, p0.`merchant_mid`, p0.`merchant_id`, p0.`merchant_name`, p0.`merchant_ref_number`, p0.`bank_name`, p0.`iban`, p0.`account_number`, p0.`bank_code`, p0.`currency`, p0.`gross_amount`, p0.`total_deductions`, p0.`payout_amount`, p0.`transaction_count`, p0.`net_settlement_amount`, p0.`total_adjustments_credit`, p0.`total_adjustments_debit`, p0.`final_payout_amount`, p0.`total_gross_amount`, p0.`total_mdr_amount`, p0.`total_vat_amount`, p0.`status`, p0.`bank_transfer_ref`, p0.`confirmed_at`, p0.`rejection_reason`, p0.`rejected_at`, p0.`re_initiated_at`, p0.`re_initiated_batch_id`, p0.`inserted_at`, p0.`updated_at` FROM `payout_items` AS p0 WHERE (p0.`payout_batch_id` = ?) ORDER BY p0.`merchant_mid` [20] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:655 [2026-08-19 08:03:51.454] [DEBUG] Replied in 6ms [2026-08-19 08:04:12.334] [INFO ] GET / [2026-08-19 08:04:12.334] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-08-19 08:04:12.335] [INFO ] Sent 200 in 1ms [2026-08-19 08:04:17.351] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:04:17.351] [INFO ] Incoming JSON payload: {"oid":"abd5d31c-b958-4e3c-8c51-290f28aa05b5","sn":"98251226730001","uploadTime":"2026-08-19T08:04:17Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"ram_free_mb","value":"1030","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:04:17Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:04: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:04:17.352] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "abd5d31c-b958-4e3c-8c51-290f28aa05b5", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:04:17Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:04:17Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:04:17Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:04:17Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:04:17Z", "value" => "1030"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:04:17Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:04:17Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:04:17Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:04:17Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:04:17Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:04: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:04:17Z", "vendor" => "morefun"} [2026-08-19 08:04:17.352] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:04:17.352] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:04:17.352] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:04:17.355] [DEBUG] QUERY OK source="parameter_templates" db=2.2ms idle=1006.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-08-19 08:04:17.357] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=4.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-08-19 08:04:17.358] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:04:17.362] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:04:17.363] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:04:17.394] [DEBUG] QUERY OK source="tms_terminals" db=31.3ms idle=6.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:04:17], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:04:17.395] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:04:17.397] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=33.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:1184 [2026-08-19 08:04:17.441] [DEBUG] QUERY OK source="tms_terminals" db=43.5ms queue=0.1ms idle=3.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:04:17], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:04:17.443] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.6ms idle=45.0ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:04:17.503] [DEBUG] QUERY OK db=59.2ms idle=2.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["abd5d31c-b958-4e3c-8c51-290f28aa05b5", 33, "2026-08-19T08:04:17Z", ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:04:17.503] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73146, oid: "abd5d31c-b958-4e3c-8c51-290f28aa05b5", upload_time: "2026-08-19T08:04:17Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]} [2026-08-19 08:04:17.504] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:04:17Z", "value" => "morefun"} [2026-08-19 08:04:17.572] [DEBUG] QUERY OK db=68.1ms idle=60.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "morefun", "vendor", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.573] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736120, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.574] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:04:17Z", "value" => "kiosk_launcher"} [2026-08-19 08:04:17.640] [DEBUG] QUERY OK db=64.0ms idle=72.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "kiosk_launcher", "model", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.640] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736124, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.640] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:04:17Z", "value" => "1.0"} [2026-08-19 08:04:17.707] [DEBUG] QUERY OK db=67.0ms idle=68.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "1.0", "app_version", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.708] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736126, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.708] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:04:17Z", "value" => "13"} [2026-08-19 08:04:17.768] [DEBUG] QUERY OK db=59.9ms idle=68.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "13", "android_version", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.768] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736129, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.768] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:04:17Z", "value" => "1030"} [2026-08-19 08:04:17.840] [DEBUG] QUERY OK db=71.5ms idle=61.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "1030", "ram_free_mb", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.841] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736132, itemkey: "ram_free_mb", value: "1030", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.841] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:04:17Z", "value" => "WIFI"} [2026-08-19 08:04:17.901] [DEBUG] QUERY OK db=59.6ms idle=72.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "WIFI", "network_type", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.901] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736135, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.901] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:04:17Z", "value" => "true"} [2026-08-19 08:04:17.943] [DEBUG] QUERY OK db=41.1ms idle=61.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "true", "kiosk_active", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:17.943] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736139, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:17.943] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:04:17Z", "value" => ""} [2026-08-19 08:04:18.089] [DEBUG] QUERY OK db=143.5ms queue=1.9ms idle=43.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:04:17Z", "sim_operator", 73146, ~N[2026-08-19 08:04:17], ~N[2026-08-19 08:04:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.090] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736142, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:17], updated_at: ~N[2026-08-19 08:04:17]}} [2026-08-19 08:04:18.090] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"} [2026-08-19 08:04:18.322] [DEBUG] QUERY OK db=229.7ms queue=0.1ms idle=148.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "UNKNOWN", "sim_number", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.322] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736145, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.322] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"} [2026-08-19 08:04:18.405] [DEBUG] QUERY OK db=82.3ms idle=232.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "UNKNOWN", "sim_iccid", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.405] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736147, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.405] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"} [2026-08-19 08:04:18.462] [DEBUG] QUERY OK db=56.4ms idle=52.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "UNKNOWN", "sim_imsi", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.463] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736150, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.463] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"} [2026-08-19 08:04:18.552] [DEBUG] QUERY OK db=87.9ms queue=0.7ms idle=58.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "UNKNOWN", "sim_iccid2", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.552] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736154, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.552] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:04:17Z", "value" => "UNKNOWN"} [2026-08-19 08:04:18.593] [DEBUG] QUERY OK db=40.9ms idle=90.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "UNKNOWN", "sim_imsi2", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.594] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736156, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.594] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:04:17Z", "value" => "6"} [2026-08-19 08:04:18.652] [DEBUG] QUERY OK db=56.3ms queue=0.7ms idle=42.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "6", "data_usage_mb", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.652] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736160, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.652] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:04:17Z", "value" => "0"} [2026-08-19 08:04:18.744] [DEBUG] QUERY OK db=91.4ms idle=58.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:17Z", "0", "mobile_data_mb", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.744] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736162, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:18.745] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:04: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), 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), Scanne" <> ...} [2026-08-19 08:04:18.829] [DEBUG] QUERY OK db=83.6ms idle=93.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04: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), 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), Scanne" <> ..., "installed_apps", 73146, ~N[2026-08-19 08:04:18], ~N[2026-08-19 08:04:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:18.831] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736165, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:04:17Z", message: nil, status_log_id: 73146, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:18], updated_at: ~N[2026-08-19 08:04:18]}} [2026-08-19 08:04:47.457] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:04:47.457] [INFO ] Incoming JSON payload: {"oid":"3384a833-d3e2-47cc-90f3-8f47eda4bd9e","sn":"98251226730001","uploadTime":"2026-08-19T08:04:47Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"ram_free_mb","value":"1030","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:04:47Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:04: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:04:47.462] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "3384a833-d3e2-47cc-90f3-8f47eda4bd9e", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:04:47Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:04:47Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:04:47Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:04:47Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:04:47Z", "value" => "1030"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:04:47Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:04:47Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:04:47Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:04:47Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:04:47Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:04: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:04:47Z", "vendor" => "morefun"} [2026-08-19 08:04:47.463] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:04:47.463] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:04:47.463] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:04:47.468] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.5ms idle=755.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-08-19 08:04:47.468] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=27.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-08-19 08:04:47.468] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:04:47.475] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:04:47.475] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:04:47.510] [DEBUG] QUERY OK source="tms_terminals" db=34.6ms idle=7.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:04:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:04:47.510] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:04:47.512] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.4ms idle=37.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:1184 [2026-08-19 08:04:47.536] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:04:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:04:47.540] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=4.1ms idle=24.1ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:04:47.576] [DEBUG] QUERY OK db=35.7ms idle=4.9ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["3384a833-d3e2-47cc-90f3-8f47eda4bd9e", 33, "2026-08-19T08:04:47Z", ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:04:47.577] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73150, oid: "3384a833-d3e2-47cc-90f3-8f47eda4bd9e", upload_time: "2026-08-19T08:04:47Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]} [2026-08-19 08:04:47.577] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:04:47Z", "value" => "morefun"} [2026-08-19 08:04:47.630] [DEBUG] QUERY OK db=53.0ms idle=37.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "morefun", "vendor", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:47.631] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736167, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:47.632] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:04:47Z", "value" => "kiosk_launcher"} [2026-08-19 08:04:47.687] [DEBUG] QUERY OK db=54.1ms idle=56.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "kiosk_launcher", "model", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:47.687] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736170, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:47.687] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:04:47Z", "value" => "1.0"} [2026-08-19 08:04:47.766] [DEBUG] QUERY OK db=76.4ms queue=0.1ms idle=58.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "1.0", "app_version", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:47.766] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736174, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:47.766] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:04:47Z", "value" => "13"} [2026-08-19 08:04:47.819] [DEBUG] QUERY OK db=51.8ms idle=79.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "13", "android_version", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:47.819] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736176, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:47.819] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:04:47Z", "value" => "1030"} [2026-08-19 08:04:47.903] [DEBUG] QUERY OK db=83.6ms idle=53.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "1030", "ram_free_mb", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:47.903] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736179, itemkey: "ram_free_mb", value: "1030", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:47.904] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:04:47Z", "value" => "WIFI"} [2026-08-19 08:04:47.973] [DEBUG] QUERY OK db=68.8ms queue=0.2ms idle=85.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "WIFI", "network_type", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:47.973] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736182, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:47.974] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:04:47Z", "value" => "true"} [2026-08-19 08:04:48.041] [DEBUG] QUERY OK db=67.3ms idle=70.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "true", "kiosk_active", 73150, ~N[2026-08-19 08:04:47], ~N[2026-08-19 08:04:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.042] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736186, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:47], updated_at: ~N[2026-08-19 08:04:47]}} [2026-08-19 08:04:48.042] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:04:47Z", "value" => ""} [2026-08-19 08:04:48.120] [DEBUG] QUERY OK db=75.7ms queue=0.5ms idle=70.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:04:47Z", "sim_operator", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.120] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736189, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.121] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"} [2026-08-19 08:04:48.173] [DEBUG] QUERY OK db=51.9ms idle=79.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "UNKNOWN", "sim_number", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.174] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736191, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.174] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"} [2026-08-19 08:04:48.206] [DEBUG] QUERY OK db=31.5ms idle=54.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "UNKNOWN", "sim_iccid", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.207] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736195, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.207] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"} [2026-08-19 08:04:48.276] [DEBUG] QUERY OK db=68.4ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "UNKNOWN", "sim_imsi", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.276] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736197, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.276] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"} [2026-08-19 08:04:48.335] [DEBUG] QUERY OK db=55.7ms idle=72.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "UNKNOWN", "sim_iccid2", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.335] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736200, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.335] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:04:47Z", "value" => "UNKNOWN"} [2026-08-19 08:04:48.403] [DEBUG] QUERY OK db=66.9ms idle=59.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "UNKNOWN", "sim_imsi2", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.403] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736203, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.403] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:04:47Z", "value" => "6"} [2026-08-19 08:04:48.466] [DEBUG] QUERY OK db=62.6ms idle=69.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "6", "data_usage_mb", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.467] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736207, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.467] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:04:47Z", "value" => "0"} [2026-08-19 08:04:48.533] [DEBUG] QUERY OK db=65.4ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04:47Z", "0", "mobile_data_mb", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.534] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736210, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:04:48.535] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:04: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), 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), Scanne" <> ...} [2026-08-19 08:04:48.607] [DEBUG] QUERY OK db=66.0ms queue=3.5ms idle=68.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:04: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), 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), Scanne" <> ..., "installed_apps", 73150, ~N[2026-08-19 08:04:48], ~N[2026-08-19 08:04:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:04:48.611] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736213, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:04:47Z", message: nil, status_log_id: 73150, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:04:48], updated_at: ~N[2026-08-19 08:04:48]}} [2026-08-19 08:05:17.573] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:05:17.573] [INFO ] Incoming JSON payload: {"oid":"313a1e08-f633-4cf2-b23a-d42d923c0074","sn":"98251226730001","uploadTime":"2026-08-19T08:05:17Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"ram_free_mb","value":"1029","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:05:17Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:05: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:05:17.574] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "313a1e08-f633-4cf2-b23a-d42d923c0074", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:05:17Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:05:17Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:05:17Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:05:17Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:05:17Z", "value" => "1029"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:05:17Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:05:17Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:05:17Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:05:17Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:05:17Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:05: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:05:17Z", "vendor" => "morefun"} [2026-08-19 08:05:17.575] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:05:17.575] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:05:17.575] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:05:17.577] [DEBUG] QUERY OK source="parameter_templates" db=1.8ms queue=0.1ms idle=862.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-08-19 08:05:17.579] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=12.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-08-19 08:05:17.579] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:05:17.582] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=1.0ms 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:140 [2026-08-19 08:05:17.582] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:05:17.607] [DEBUG] QUERY OK source="tms_terminals" db=23.9ms idle=3.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:05:17], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:05:17.607] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:05:17.608] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms 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:1184 [2026-08-19 08:05:17.654] [DEBUG] QUERY OK source="tms_terminals" db=45.6ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:05:17], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:05:17.656] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms queue=0.1ms idle=46.3ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:05:17.823] [DEBUG] QUERY OK db=166.5ms queue=0.1ms idle=2.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["313a1e08-f633-4cf2-b23a-d42d923c0074", 33, "2026-08-19T08:05:17Z", ~N[2026-08-19 08:05:17], ~N[2026-08-19 08:05:17]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:05:17.824] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73152, oid: "313a1e08-f633-4cf2-b23a-d42d923c0074", upload_time: "2026-08-19T08:05:17Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:17], updated_at: ~N[2026-08-19 08:05:17]} [2026-08-19 08:05:17.824] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:05:17Z", "value" => "morefun"} [2026-08-19 08:05:17.871] [DEBUG] QUERY OK db=47.0ms idle=168.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "morefun", "vendor", 73152, ~N[2026-08-19 08:05:17], ~N[2026-08-19 08:05:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:17.872] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736215, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:17], updated_at: ~N[2026-08-19 08:05:17]}} [2026-08-19 08:05:17.872] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:05:17Z", "value" => "kiosk_launcher"} [2026-08-19 08:05:17.918] [DEBUG] QUERY OK db=45.1ms queue=0.1ms idle=49.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "kiosk_launcher", "model", 73152, ~N[2026-08-19 08:05:17], ~N[2026-08-19 08:05:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:17.918] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736219, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:17], updated_at: ~N[2026-08-19 08:05:17]}} [2026-08-19 08:05:17.919] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:05:17Z", "value" => "1.0"} [2026-08-19 08:05:17.957] [DEBUG] QUERY OK db=37.7ms idle=47.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "1.0", "app_version", 73152, ~N[2026-08-19 08:05:17], ~N[2026-08-19 08:05:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:17.957] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736222, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:17], updated_at: ~N[2026-08-19 08:05:17]}} [2026-08-19 08:05:17.957] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:05:17Z", "value" => "13"} [2026-08-19 08:05:18.011] [DEBUG] QUERY OK db=51.6ms queue=0.4ms idle=41.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "13", "android_version", 73152, ~N[2026-08-19 08:05:17], ~N[2026-08-19 08:05:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.011] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736224, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:17], updated_at: ~N[2026-08-19 08:05:17]}} [2026-08-19 08:05:18.011] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:05:17Z", "value" => "1029"} [2026-08-19 08:05:18.063] [DEBUG] QUERY OK db=48.4ms idle=57.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "1029", "ram_free_mb", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.064] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736228, itemkey: "ram_free_mb", value: "1029", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.064] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:05:17Z", "value" => "WIFI"} [2026-08-19 08:05:18.137] [DEBUG] QUERY OK db=72.7ms idle=53.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "WIFI", "network_type", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.138] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736231, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.138] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:05:17Z", "value" => "true"} [2026-08-19 08:05:18.212] [DEBUG] QUERY OK db=72.8ms idle=76.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "true", "kiosk_active", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.212] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736234, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.213] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:05:17Z", "value" => ""} [2026-08-19 08:05:18.303] [DEBUG] QUERY OK db=88.8ms queue=0.1ms idle=76.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:05:17Z", "sim_operator", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.303] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736237, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.303] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"} [2026-08-19 08:05:18.346] [DEBUG] QUERY OK db=41.7ms queue=0.2ms idle=92.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "UNKNOWN", "sim_number", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.347] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736241, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.347] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"} [2026-08-19 08:05:18.393] [DEBUG] QUERY OK db=44.8ms idle=45.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "UNKNOWN", "sim_iccid", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.393] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736244, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.393] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"} [2026-08-19 08:05:18.438] [DEBUG] QUERY OK db=43.8ms queue=0.3ms idle=47.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "UNKNOWN", "sim_imsi", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.438] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736247, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.438] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"} [2026-08-19 08:05:18.614] [DEBUG] QUERY OK db=175.5ms idle=45.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "UNKNOWN", "sim_iccid2", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.615] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736249, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.615] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:05:17Z", "value" => "UNKNOWN"} [2026-08-19 08:05:18.658] [DEBUG] QUERY OK db=42.1ms idle=44.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "UNKNOWN", "sim_imsi2", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.658] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736252, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.658] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:05:17Z", "value" => "6"} [2026-08-19 08:05:18.719] [DEBUG] QUERY OK db=60.9ms queue=0.1ms idle=44.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "6", "data_usage_mb", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.720] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736255, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.720] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:05:17Z", "value" => "0"} [2026-08-19 08:05:18.783] [DEBUG] QUERY OK db=62.9ms queue=0.1ms idle=62.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:17Z", "0", "mobile_data_mb", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.784] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736258, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:18.786] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:05: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), 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), Scanne" <> ...} [2026-08-19 08:05:18.835] [DEBUG] QUERY OK db=47.6ms idle=67.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05: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), 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), Scanne" <> ..., "installed_apps", 73152, ~N[2026-08-19 08:05:18], ~N[2026-08-19 08:05:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:18.837] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736261, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:05:17Z", message: nil, status_log_id: 73152, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:18], updated_at: ~N[2026-08-19 08:05:18]}} [2026-08-19 08:05:47.966] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:05:47.966] [INFO ] Incoming JSON payload: {"oid":"3d59e0a5-a422-40ca-aa33-161fcc6b0729","sn":"98251226730001","uploadTime":"2026-08-19T08:05:47Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:05:47Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:05: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:05:47.970] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "3d59e0a5-a422-40ca-aa33-161fcc6b0729", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:05:47Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:05:47Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:05:47Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:05:47Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:05:47Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:05:47Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:05:47Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:05:47Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:05:47Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:05:47Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:05: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:05:47Z", "vendor" => "morefun"} [2026-08-19 08:05:47.973] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:05:47.973] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:05:47.973] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:05:47.978] [DEBUG] QUERY OK source="parameter_templates" db=1.2ms queue=1.1ms idle=1216.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-08-19 08:05:47.982] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=0.2ms idle=219.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-08-19 08:05:47.982] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:05:47.985] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms queue=0.1ms 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:140 [2026-08-19 08:05:47.985] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:05:48.009] [DEBUG] QUERY OK source="tms_terminals" db=23.9ms idle=3.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:05:47], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:05:48.009] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:05:48.012] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=0.2ms idle=25.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:1184 [2026-08-19 08:05:48.086] [DEBUG] QUERY OK source="tms_terminals" db=72.4ms idle=3.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:05:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:05:48.087] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.8ms queue=0.1ms idle=73.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:05:48.143] [DEBUG] QUERY OK db=54.9ms idle=2.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["3d59e0a5-a422-40ca-aa33-161fcc6b0729", 33, "2026-08-19T08:05:47Z", ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:05:48.143] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73155, oid: "3d59e0a5-a422-40ca-aa33-161fcc6b0729", upload_time: "2026-08-19T08:05:47Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]} [2026-08-19 08:05:48.143] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:05:47Z", "value" => "morefun"} [2026-08-19 08:05:48.256] [DEBUG] QUERY OK db=109.8ms idle=59.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "morefun", "vendor", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.256] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736263, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.256] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:05:47Z", "value" => "kiosk_launcher"} [2026-08-19 08:05:48.315] [DEBUG] QUERY OK db=57.8ms idle=113.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "kiosk_launcher", "model", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.315] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736265, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.315] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:05:47Z", "value" => "1.0"} [2026-08-19 08:05:48.385] [DEBUG] QUERY OK db=67.7ms idle=61.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "1.0", "app_version", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.385] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736268, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.386] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:05:47Z", "value" => "13"} [2026-08-19 08:05:48.457] [DEBUG] QUERY OK db=68.9ms idle=73.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "13", "android_version", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.458] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736272, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.458] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:05:47Z", "value" => "1033"} [2026-08-19 08:05:48.499] [DEBUG] QUERY OK db=39.5ms queue=0.9ms idle=72.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "1033", "ram_free_mb", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.500] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736274, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.501] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:05:47Z", "value" => "WIFI"} [2026-08-19 08:05:48.562] [DEBUG] QUERY OK db=57.9ms queue=1.3ms idle=46.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "WIFI", "network_type", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.562] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736277, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.562] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:05:47Z", "value" => "true"} [2026-08-19 08:05:48.594] [DEBUG] QUERY OK db=31.6ms idle=64.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "true", "kiosk_active", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.595] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736279, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.595] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:05:47Z", "value" => ""} [2026-08-19 08:05:48.698] [DEBUG] QUERY OK db=101.0ms idle=34.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:05:47Z", "sim_operator", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.698] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736281, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.698] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"} [2026-08-19 08:05:48.759] [DEBUG] QUERY OK db=60.8ms idle=103.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "UNKNOWN", "sim_number", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.759] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736284, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.759] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"} [2026-08-19 08:05:48.802] [DEBUG] QUERY OK db=42.2ms idle=62.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "UNKNOWN", "sim_iccid", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.803] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736286, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.803] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"} [2026-08-19 08:05:48.861] [DEBUG] QUERY OK db=55.3ms idle=40.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "UNKNOWN", "sim_imsi", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.861] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736289, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.861] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"} [2026-08-19 08:05:48.922] [DEBUG] QUERY OK db=60.4ms idle=59.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "UNKNOWN", "sim_iccid2", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.923] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736291, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.923] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:05:47Z", "value" => "UNKNOWN"} [2026-08-19 08:05:48.990] [DEBUG] QUERY OK db=66.0ms idle=62.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "UNKNOWN", "sim_imsi2", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:48.990] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736294, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:48.990] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:05:47Z", "value" => "6"} [2026-08-19 08:05:49.043] [DEBUG] QUERY OK db=52.8ms idle=68.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "6", "data_usage_mb", 73155, ~N[2026-08-19 08:05:48], ~N[2026-08-19 08:05:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:49.045] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736297, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:48], updated_at: ~N[2026-08-19 08:05:48]}} [2026-08-19 08:05:49.045] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:05:47Z", "value" => "0"} [2026-08-19 08:05:49.113] [DEBUG] QUERY OK db=67.4ms idle=55.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05:47Z", "0", "mobile_data_mb", 73155, ~N[2026-08-19 08:05:49], ~N[2026-08-19 08:05:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:49.114] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736300, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:49], updated_at: ~N[2026-08-19 08:05:49]}} [2026-08-19 08:05:49.114] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:05: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), 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), Scanne" <> ...} [2026-08-19 08:05:49.188] [DEBUG] QUERY OK db=72.5ms idle=71.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:05: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), 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), Scanne" <> ..., "installed_apps", 73155, ~N[2026-08-19 08:05:49], ~N[2026-08-19 08:05:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:05:49.189] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736303, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:05:47Z", message: nil, status_log_id: 73155, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:05:49], updated_at: ~N[2026-08-19 08:05:49]}} [2026-08-19 08:06:18.083] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:06:18.083] [INFO ] Incoming JSON payload: {"oid":"94e2b69e-dd28-4a80-9f71-76f0b9ebdff5","sn":"98251226730001","uploadTime":"2026-08-19T08:06:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"ram_free_mb","value":"1025","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:06:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:06:18Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:06:18.084] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "94e2b69e-dd28-4a80-9f71-76f0b9ebdff5", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:06:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:06:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:06:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:06:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:06:18Z", "value" => "1025"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:06:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:06:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:06:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:06:18Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:06:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:06:18Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:06:18Z", "vendor" => "morefun"} [2026-08-19 08:06:18.084] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:06:18.085] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:06:18.085] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:06:18.093] [DEBUG] QUERY OK source="parameter_templates" db=7.8ms idle=206.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-08-19 08:06:18.098] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.9ms idle=26.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-08-19 08:06:18.098] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:06:18.101] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms 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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:06:18.102] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:06:18.119] [DEBUG] QUERY OK source="tms_terminals" db=16.5ms idle=4.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:06:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:06:18.119] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:06:18.121] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=18.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:1184 [2026-08-19 08:06:18.183] [DEBUG] QUERY OK source="tms_terminals" db=61.6ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:06:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:06:18.185] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.3ms queue=0.1ms idle=63.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:06:18.229] [DEBUG] QUERY OK db=43.3ms idle=2.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["94e2b69e-dd28-4a80-9f71-76f0b9ebdff5", 33, "2026-08-19T08:06:18Z", ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:06:18.229] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73157, oid: "94e2b69e-dd28-4a80-9f71-76f0b9ebdff5", upload_time: "2026-08-19T08:06:18Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]} [2026-08-19 08:06:18.229] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:06:18Z", "value" => "morefun"} [2026-08-19 08:06:18.328] [DEBUG] QUERY OK db=98.2ms idle=44.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "morefun", "vendor", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.328] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736310, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.328] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:06:18Z", "value" => "kiosk_launcher"} [2026-08-19 08:06:18.402] [DEBUG] QUERY OK db=72.5ms queue=0.1ms idle=99.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "kiosk_launcher", "model", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.402] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736313, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.403] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:06:18Z", "value" => "1.0"} [2026-08-19 08:06:18.466] [DEBUG] QUERY OK db=62.7ms idle=75.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "1.0", "app_version", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.467] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736316, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.467] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:06:18Z", "value" => "13"} [2026-08-19 08:06:18.535] [DEBUG] QUERY OK db=67.6ms idle=66.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "13", "android_version", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.535] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736319, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.535] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:06:18Z", "value" => "1025"} [2026-08-19 08:06:18.582] [DEBUG] QUERY OK db=45.9ms idle=69.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "1025", "ram_free_mb", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.584] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736321, itemkey: "ram_free_mb", value: "1025", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.584] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:06:18Z", "value" => "WIFI"} [2026-08-19 08:06:18.635] [DEBUG] QUERY OK db=49.8ms idle=49.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "WIFI", "network_type", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.635] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736324, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.635] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:06:18Z", "value" => "true"} [2026-08-19 08:06:18.687] [DEBUG] QUERY OK db=51.6ms idle=53.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "true", "kiosk_active", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.687] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736327, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.689] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:06:18Z", "value" => ""} [2026-08-19 08:06:18.734] [DEBUG] QUERY OK db=44.3ms idle=54.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:06:18Z", "sim_operator", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.734] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736330, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.734] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"} [2026-08-19 08:06:18.793] [DEBUG] QUERY OK db=58.6ms idle=47.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "UNKNOWN", "sim_number", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.793] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736333, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.794] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"} [2026-08-19 08:06:18.848] [DEBUG] QUERY OK db=51.7ms queue=0.2ms idle=62.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "UNKNOWN", "sim_iccid", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736336, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.848] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"} [2026-08-19 08:06:18.967] [DEBUG] QUERY OK db=117.8ms idle=55.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "UNKNOWN", "sim_imsi", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:18.967] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736339, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:18.967] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"} [2026-08-19 08:06:19.072] [DEBUG] QUERY OK db=104.4ms idle=83.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "UNKNOWN", "sim_iccid2", 73157, ~N[2026-08-19 08:06:18], ~N[2026-08-19 08:06:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:19.072] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736342, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:18], updated_at: ~N[2026-08-19 08:06:18]}} [2026-08-19 08:06:19.072] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:06:18Z", "value" => "UNKNOWN"} [2026-08-19 08:06:19.138] [DEBUG] QUERY OK db=65.3ms idle=105.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "UNKNOWN", "sim_imsi2", 73157, ~N[2026-08-19 08:06:19], ~N[2026-08-19 08:06:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:19.139] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736344, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:19], updated_at: ~N[2026-08-19 08:06:19]}} [2026-08-19 08:06:19.140] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:06:18Z", "value" => "6"} [2026-08-19 08:06:19.207] [DEBUG] QUERY OK db=67.3ms idle=68.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "6", "data_usage_mb", 73157, ~N[2026-08-19 08:06:19], ~N[2026-08-19 08:06:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:19.207] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736347, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:19], updated_at: ~N[2026-08-19 08:06:19]}} [2026-08-19 08:06:19.208] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:06:18Z", "value" => "0"} [2026-08-19 08:06:19.273] [DEBUG] QUERY OK db=64.4ms idle=70.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "0", "mobile_data_mb", 73157, ~N[2026-08-19 08:06:19], ~N[2026-08-19 08:06:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:19.273] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736350, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:19], updated_at: ~N[2026-08-19 08:06:19]}} [2026-08-19 08:06:19.281] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:06:18Z", "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), 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), Scanne" <> ...} [2026-08-19 08:06:19.345] [DEBUG] QUERY OK db=61.4ms idle=74.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:18Z", "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), 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), Scanne" <> ..., "installed_apps", 73157, ~N[2026-08-19 08:06:19], ~N[2026-08-19 08:06:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:19.348] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736353, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:06:18Z", message: nil, status_log_id: 73157, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:19], updated_at: ~N[2026-08-19 08:06:19]}} [2026-08-19 08:06:48.208] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:06:48.208] [INFO ] Incoming JSON payload: {"oid":"6ddef543-3e15-4da2-9985-a39fd25cb107","sn":"98251226730001","uploadTime":"2026-08-19T08:06:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"ram_free_mb","value":"1028","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:06:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:06:48Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:06:48.209] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "6ddef543-3e15-4da2-9985-a39fd25cb107", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:06:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:06:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:06:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:06:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:06:48Z", "value" => "1028"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:06:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:06:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:06:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:06:48Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:06:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:06:48Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:06:48Z", "vendor" => "morefun"} [2026-08-19 08:06:48.209] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:06:48.209] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:06:48.209] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:06:48.214] [DEBUG] QUERY OK source="parameter_templates" db=4.3ms idle=480.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-08-19 08:06:48.216] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms queue=0.1ms idle=214.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-08-19 08:06:48.216] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:06:48.222] [DEBUG] QUERY OK source="tms_terminals" db=5.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:06:48.227] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:06:48.298] [DEBUG] QUERY OK source="tms_terminals" db=70.7ms idle=10.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:06:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:06:48.298] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:06:48.303] [DEBUG] QUERY OK source="tms_terminals" db=4.9ms idle=76.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:1184 [2026-08-19 08:06:48.339] [DEBUG] QUERY OK source="tms_terminals" db=35.1ms queue=0.1ms idle=6.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:06:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:06:48.342] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.1ms idle=36.3ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:06:48.390] [DEBUG] QUERY OK db=46.6ms queue=0.1ms idle=4.0ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["6ddef543-3e15-4da2-9985-a39fd25cb107", 33, "2026-08-19T08:06:48Z", ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:06:48.391] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73161, oid: "6ddef543-3e15-4da2-9985-a39fd25cb107", upload_time: "2026-08-19T08:06:48Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]} [2026-08-19 08:06:48.391] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:06:48Z", "value" => "morefun"} [2026-08-19 08:06:48.436] [DEBUG] QUERY OK db=41.2ms idle=52.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "morefun", "vendor", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.436] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736360, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.436] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:06:48Z", "value" => "kiosk_launcher"} [2026-08-19 08:06:48.515] [DEBUG] QUERY OK db=76.9ms queue=0.4ms idle=46.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "kiosk_launcher", "model", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.516] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736362, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.517] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:06:48Z", "value" => "1.0"} [2026-08-19 08:06:48.572] [DEBUG] QUERY OK db=54.3ms idle=81.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "1.0", "app_version", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.572] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736366, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.572] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:06:48Z", "value" => "13"} [2026-08-19 08:06:48.639] [DEBUG] QUERY OK db=66.7ms idle=58.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "13", "android_version", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.640] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736370, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.640] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:06:48Z", "value" => "1028"} [2026-08-19 08:06:48.700] [DEBUG] QUERY OK db=58.7ms idle=69.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "1028", "ram_free_mb", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.701] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736373, itemkey: "ram_free_mb", value: "1028", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.701] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:06:48Z", "value" => "WIFI"} [2026-08-19 08:06:48.774] [DEBUG] QUERY OK db=70.4ms idle=63.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "WIFI", "network_type", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.774] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736376, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.774] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:06:48Z", "value" => "true"} [2026-08-19 08:06:48.845] [DEBUG] QUERY OK db=69.3ms idle=74.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "true", "kiosk_active", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.845] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736379, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.845] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:06:48Z", "value" => ""} [2026-08-19 08:06:48.910] [DEBUG] QUERY OK db=64.8ms idle=71.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:06:48Z", "sim_operator", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.910] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736382, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.910] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"} [2026-08-19 08:06:48.960] [DEBUG] QUERY OK db=48.0ms idle=67.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "UNKNOWN", "sim_number", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:48.960] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736385, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:48.960] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"} [2026-08-19 08:06:49.024] [DEBUG] QUERY OK db=63.4ms idle=50.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "UNKNOWN", "sim_iccid", 73161, ~N[2026-08-19 08:06:48], ~N[2026-08-19 08:06:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.024] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736389, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:48], updated_at: ~N[2026-08-19 08:06:48]}} [2026-08-19 08:06:49.024] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"} [2026-08-19 08:06:49.083] [DEBUG] QUERY OK db=58.4ms idle=20.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "UNKNOWN", "sim_imsi", 73161, ~N[2026-08-19 08:06:49], ~N[2026-08-19 08:06:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.084] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736392, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:49], updated_at: ~N[2026-08-19 08:06:49]}} [2026-08-19 08:06:49.084] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"} [2026-08-19 08:06:49.161] [DEBUG] QUERY OK db=76.7ms idle=60.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "UNKNOWN", "sim_iccid2", 73161, ~N[2026-08-19 08:06:49], ~N[2026-08-19 08:06:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.162] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736394, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:49], updated_at: ~N[2026-08-19 08:06:49]}} [2026-08-19 08:06:49.162] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:06:48Z", "value" => "UNKNOWN"} [2026-08-19 08:06:49.239] [DEBUG] QUERY OK db=74.6ms idle=81.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "UNKNOWN", "sim_imsi2", 73161, ~N[2026-08-19 08:06:49], ~N[2026-08-19 08:06:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.239] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736398, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:49], updated_at: ~N[2026-08-19 08:06:49]}} [2026-08-19 08:06:49.239] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:06:48Z", "value" => "6"} [2026-08-19 08:06:49.303] [DEBUG] QUERY OK db=63.1ms idle=78.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "6", "data_usage_mb", 73161, ~N[2026-08-19 08:06:49], ~N[2026-08-19 08:06:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.303] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736400, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:49], updated_at: ~N[2026-08-19 08:06:49]}} [2026-08-19 08:06:49.303] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:06:48Z", "value" => "0"} [2026-08-19 08:06:49.389] [DEBUG] QUERY OK db=82.0ms queue=0.9ms idle=66.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "0", "mobile_data_mb", 73161, ~N[2026-08-19 08:06:49], ~N[2026-08-19 08:06:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.389] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736403, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:49], updated_at: ~N[2026-08-19 08:06:49]}} [2026-08-19 08:06:49.393] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:06:48Z", "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), 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), Scanne" <> ...} [2026-08-19 08:06:49.435] [DEBUG] QUERY OK db=39.3ms idle=91.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:06:48Z", "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), 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), Scanne" <> ..., "installed_apps", 73161, ~N[2026-08-19 08:06:49], ~N[2026-08-19 08:06:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:06:49.435] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736405, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:06:48Z", message: nil, status_log_id: 73161, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:06:49], updated_at: ~N[2026-08-19 08:06:49]}} [2026-08-19 08:07:18.309] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:07:18.309] [INFO ] Incoming JSON payload: {"oid":"14fc6bca-f2f4-4f56-a63e-35f247ae03cf","sn":"98251226730001","uploadTime":"2026-08-19T08:07:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"ram_free_mb","value":"1025","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:07:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:07:18Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:07:18.311] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "14fc6bca-f2f4-4f56-a63e-35f247ae03cf", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:07:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:07:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:07:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:07:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:07:18Z", "value" => "1025"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:07:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:07:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:07:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:07:18Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:07:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:07:18Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:07:18Z", "vendor" => "morefun"} [2026-08-19 08:07:18.311] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:07:18.311] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:07:18.311] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:07:18.312] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=1221.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-08-19 08:07:18.313] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=219.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-08-19 08:07:18.313] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:07:18.315] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms 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:140 [2026-08-19 08:07:18.315] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:07:18.350] [DEBUG] QUERY OK source="tms_terminals" db=34.5ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:07:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:07:18.351] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:07:18.353] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=35.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:1184 [2026-08-19 08:07:18.389] [DEBUG] QUERY OK source="tms_terminals" db=35.7ms idle=2.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:07:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:07:18.390] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=36.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:07:18.440] [DEBUG] QUERY OK db=49.0ms queue=0.4ms idle=1.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["14fc6bca-f2f4-4f56-a63e-35f247ae03cf", 33, "2026-08-19T08:07:18Z", ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:07:18.440] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73163, oid: "14fc6bca-f2f4-4f56-a63e-35f247ae03cf", upload_time: "2026-08-19T08:07:18Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]} [2026-08-19 08:07:18.440] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:07:18Z", "value" => "morefun"} [2026-08-19 08:07:18.490] [DEBUG] QUERY OK db=50.0ms idle=50.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "morefun", "vendor", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.490] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736406, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.491] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:07:18Z", "value" => "kiosk_launcher"} [2026-08-19 08:07:18.570] [DEBUG] QUERY OK db=78.5ms idle=52.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "kiosk_launcher", "model", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.570] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736409, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.572] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:07:18Z", "value" => "1.0"} [2026-08-19 08:07:18.599] [DEBUG] QUERY OK db=26.8ms idle=81.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "1.0", "app_version", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.599] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736412, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.599] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:07:18Z", "value" => "13"} [2026-08-19 08:07:18.633] [DEBUG] QUERY OK db=32.0ms queue=1.7ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "13", "android_version", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.634] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736415, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.634] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:07:18Z", "value" => "1025"} [2026-08-19 08:07:18.684] [DEBUG] QUERY OK db=49.5ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "1025", "ram_free_mb", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.684] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736418, itemkey: "ram_free_mb", value: "1025", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.685] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:07:18Z", "value" => "WIFI"} [2026-08-19 08:07:18.742] [DEBUG] QUERY OK db=57.3ms idle=51.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "WIFI", "network_type", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.742] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736421, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.743] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:07:18Z", "value" => "true"} [2026-08-19 08:07:18.780] [DEBUG] QUERY OK db=36.4ms queue=0.2ms idle=58.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "true", "kiosk_active", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.780] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736424, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.783] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:07:18Z", "value" => ""} [2026-08-19 08:07:18.839] [DEBUG] QUERY OK db=55.9ms idle=40.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:07:18Z", "sim_operator", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.839] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736427, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.839] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"} [2026-08-19 08:07:18.885] [DEBUG] QUERY OK db=44.1ms idle=61.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "UNKNOWN", "sim_number", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.885] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736430, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.885] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"} [2026-08-19 08:07:18.947] [DEBUG] QUERY OK db=61.4ms idle=46.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "UNKNOWN", "sim_iccid", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:18.948] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736431, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:18.948] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"} [2026-08-19 08:07:19.007] [DEBUG] QUERY OK db=58.6ms idle=63.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "UNKNOWN", "sim_imsi", 73163, ~N[2026-08-19 08:07:18], ~N[2026-08-19 08:07:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:19.007] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736435, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:18], updated_at: ~N[2026-08-19 08:07:18]}} [2026-08-19 08:07:19.009] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"} [2026-08-19 08:07:19.052] [DEBUG] QUERY OK db=40.8ms idle=64.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "UNKNOWN", "sim_iccid2", 73163, ~N[2026-08-19 08:07:19], ~N[2026-08-19 08:07:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:19.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736439, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:19], updated_at: ~N[2026-08-19 08:07:19]}} [2026-08-19 08:07:19.052] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:07:18Z", "value" => "UNKNOWN"} [2026-08-19 08:07:19.113] [DEBUG] QUERY OK db=60.6ms idle=45.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "UNKNOWN", "sim_imsi2", 73163, ~N[2026-08-19 08:07:19], ~N[2026-08-19 08:07:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:19.114] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736441, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:19], updated_at: ~N[2026-08-19 08:07:19]}} [2026-08-19 08:07:19.115] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:07:18Z", "value" => "6"} [2026-08-19 08:07:19.166] [DEBUG] QUERY OK db=50.9ms idle=19.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "6", "data_usage_mb", 73163, ~N[2026-08-19 08:07:19], ~N[2026-08-19 08:07:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:19.166] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736445, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:19], updated_at: ~N[2026-08-19 08:07:19]}} [2026-08-19 08:07:19.167] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:07:18Z", "value" => "0"} [2026-08-19 08:07:19.224] [DEBUG] QUERY OK db=56.2ms idle=54.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "0", "mobile_data_mb", 73163, ~N[2026-08-19 08:07:19], ~N[2026-08-19 08:07:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:19.226] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736447, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:19], updated_at: ~N[2026-08-19 08:07:19]}} [2026-08-19 08:07:19.229] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:07:18Z", "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), 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), Scanne" <> ...} [2026-08-19 08:07:19.285] [DEBUG] QUERY OK db=51.3ms idle=63.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:18Z", "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), 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), Scanne" <> ..., "installed_apps", 73163, ~N[2026-08-19 08:07:19], ~N[2026-08-19 08:07:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:19.295] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736451, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:07:18Z", message: nil, status_log_id: 73163, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:19], updated_at: ~N[2026-08-19 08:07:19]}} [2026-08-19 08:07:48.430] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:07:48.430] [INFO ] Incoming JSON payload: {"oid":"b334d1a6-3390-40cd-a6b0-545e86293de2","sn":"98251226730001","uploadTime":"2026-08-19T08:07:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"ram_free_mb","value":"1038","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:07:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:07:48Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:07:48.432] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "b334d1a6-3390-40cd-a6b0-545e86293de2", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:07:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:07:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:07:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:07:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:07:48Z", "value" => "1038"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:07:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:07:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:07:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:07:48Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:07:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:07:48Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:07:48Z", "vendor" => "morefun"} [2026-08-19 08:07:48.432] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:07:48.432] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:07:48.432] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:07:48.433] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=0.2ms idle=1260.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-08-19 08:07:48.434] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=258.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-08-19 08:07:48.434] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:07:48.437] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms 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:140 [2026-08-19 08:07:48.437] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:07:48.522] [DEBUG] QUERY OK source="tms_terminals" db=84.0ms idle=3.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:07:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:07:48.522] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:07:48.524] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=85.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:1184 [2026-08-19 08:07:48.595] [DEBUG] QUERY OK source="tms_terminals" db=69.9ms idle=3.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:07:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:07:48.597] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.0ms idle=72.1ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:07:48.662] [DEBUG] QUERY OK db=63.0ms queue=0.2ms idle=2.8ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["b334d1a6-3390-40cd-a6b0-545e86293de2", 33, "2026-08-19T08:07:48Z", ~N[2026-08-19 08:07:48], ~N[2026-08-19 08:07:48]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:07:48.662] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73168, oid: "b334d1a6-3390-40cd-a6b0-545e86293de2", upload_time: "2026-08-19T08:07:48Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:48], updated_at: ~N[2026-08-19 08:07:48]} [2026-08-19 08:07:48.662] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:07:48Z", "value" => "morefun"} [2026-08-19 08:07:48.711] [DEBUG] QUERY OK db=48.1ms idle=65.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "morefun", "vendor", 73168, ~N[2026-08-19 08:07:48], ~N[2026-08-19 08:07:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:48.711] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736455, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:48], updated_at: ~N[2026-08-19 08:07:48]}} [2026-08-19 08:07:48.711] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:07:48Z", "value" => "kiosk_launcher"} [2026-08-19 08:07:48.824] [DEBUG] QUERY OK db=112.7ms idle=49.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "kiosk_launcher", "model", 73168, ~N[2026-08-19 08:07:48], ~N[2026-08-19 08:07:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:48.827] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736458, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:48], updated_at: ~N[2026-08-19 08:07:48]}} [2026-08-19 08:07:48.827] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:07:48Z", "value" => "1.0"} [2026-08-19 08:07:48.901] [DEBUG] QUERY OK db=73.9ms idle=116.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "1.0", "app_version", 73168, ~N[2026-08-19 08:07:48], ~N[2026-08-19 08:07:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:48.902] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736462, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:48], updated_at: ~N[2026-08-19 08:07:48]}} [2026-08-19 08:07:48.903] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:07:48Z", "value" => "13"} [2026-08-19 08:07:49.039] [DEBUG] QUERY OK db=136.0ms idle=78.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "13", "android_version", 73168, ~N[2026-08-19 08:07:48], ~N[2026-08-19 08:07:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.039] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736465, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:48], updated_at: ~N[2026-08-19 08:07:48]}} [2026-08-19 08:07:49.041] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:07:48Z", "value" => "1038"} [2026-08-19 08:07:49.121] [DEBUG] QUERY OK db=79.8ms idle=140.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "1038", "ram_free_mb", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.122] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736468, itemkey: "ram_free_mb", value: "1038", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.122] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:07:48Z", "value" => "WIFI"} [2026-08-19 08:07:49.300] [DEBUG] QUERY OK db=177.6ms queue=0.7ms idle=82.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "WIFI", "network_type", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.301] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736471, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.301] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:07:48Z", "value" => "true"} [2026-08-19 08:07:49.372] [DEBUG] QUERY OK db=71.4ms idle=122.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "true", "kiosk_active", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.373] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736473, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.373] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:07:48Z", "value" => ""} [2026-08-19 08:07:49.450] [DEBUG] QUERY OK db=75.7ms idle=73.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:07:48Z", "sim_operator", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.450] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736477, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.450] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"} [2026-08-19 08:07:49.521] [DEBUG] QUERY OK db=68.5ms idle=80.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "UNKNOWN", "sim_number", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.521] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736480, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.522] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"} [2026-08-19 08:07:49.611] [DEBUG] QUERY OK db=89.4ms idle=72.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "UNKNOWN", "sim_iccid", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.612] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736483, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.612] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"} [2026-08-19 08:07:49.711] [DEBUG] QUERY OK db=98.3ms queue=0.4ms idle=91.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "UNKNOWN", "sim_imsi", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.711] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736486, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.711] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"} [2026-08-19 08:07:49.797] [DEBUG] QUERY OK db=84.8ms idle=100.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "UNKNOWN", "sim_iccid2", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.797] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736489, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.797] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:07:48Z", "value" => "UNKNOWN"} [2026-08-19 08:07:49.869] [DEBUG] QUERY OK db=72.1ms idle=86.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "UNKNOWN", "sim_imsi2", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.869] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736492, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.870] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:07:48Z", "value" => "6"} [2026-08-19 08:07:49.904] [DEBUG] QUERY OK db=33.9ms idle=73.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "6", "data_usage_mb", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.905] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736495, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.905] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:07:48Z", "value" => "0"} [2026-08-19 08:07:49.978] [DEBUG] QUERY OK db=70.9ms queue=2.0ms idle=35.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "0", "mobile_data_mb", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:49.978] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736498, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:49.979] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:07:48Z", "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), 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), Scanne" <> ...} [2026-08-19 08:07:50.027] [DEBUG] QUERY OK db=44.3ms queue=0.4ms idle=76.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:07:48Z", "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), 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), Scanne" <> ..., "installed_apps", 73168, ~N[2026-08-19 08:07:49], ~N[2026-08-19 08:07:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:07:50.027] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736501, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:07:48Z", message: nil, status_log_id: 73168, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:07:49], updated_at: ~N[2026-08-19 08:07:49]}} [2026-08-19 08:07:57.885] [INFO ] Running offline device check... [2026-08-19 08:07:57.885] [INFO ] Starting offline device check... [2026-08-19 08:07:57.887] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=1.0ms idle=154.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:1234 [2026-08-19 08:07:57.896] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms queue=0.4ms idle=41.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:07:57.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms 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:1249 [2026-08-19 08:07:57.905] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.910] [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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.912] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.913] [INFO ] Starting scheduled rule validation [2026-08-19 08:07:57.913] [DEBUG] Validating missing assignments [2026-08-19 08:07:57.913] [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 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.914] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms queue=0.1ms idle=1.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-08-19 08:07:57.915] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms 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:1249 [2026-08-19 08:07:57.916] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.917] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms 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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.919] [DEBUG] QUERY OK source="tms_terminals" db=4.3ms idle=0.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-08-19 08:07:57.919] [DEBUG] Re-applied 0 rules during validation [2026-08-19 08:07:57.919] [DEBUG] Validating invalid assignments [2026-08-19 08:07:57.920] [DEBUG] Validating rule consistency [2026-08-19 08:07:57.920] [DEBUG] Updating group terminal counts [2026-08-19 08:07:57.920] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms 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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.925] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms queue=0.5ms idle=4.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-08-19 08:07:57.926] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.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:1249 [2026-08-19 08:07:57.927] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms queue=1.0ms 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-08-19 08:07:57.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.945] [DEBUG] QUERY OK source="terminal_groups" db=0.5ms queue=2.3ms idle=9.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-08-19 08:07:57.947] [DEBUG] QUERY OK source="terminal_group_rules" db=0.3ms queue=0.5ms idle=0.3ms 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-08-19 08:07:57.948] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms queue=0.3ms 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-08-19 08:07:57.948] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.949] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.2ms queue=0.4ms idle=0.1ms 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-08-19 08:07:57.952] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.4ms queue=1.7ms idle=0.2ms 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-08-19 08:07:57.953] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.955] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.2ms queue=0.4ms idle=0.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-08-19 08:07:57.955] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-08-19 08:07:57.955] [INFO ] Rule validation completed - applied 0 fixes [2026-08-19 08:07:57.955] [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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.957] [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:1249 [2026-08-19 08:07:57.958] [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:1249 [2026-08-19 08:07:57.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.978] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=18.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:07:57.980] [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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.983] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms 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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.985] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:57.987] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=32.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 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.022] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=33.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:07:58.023] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.036] [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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms 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 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.046] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=1.0ms 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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.049] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.054] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms queue=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 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.054] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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:1249 [2026-08-19 08:07:58.055] [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:1249 [2026-08-19 08:07:58.056] [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 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.057] [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 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.059] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.060] [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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.062] [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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.063] [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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.063] [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:1249 [2026-08-19 08:07:58.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 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.066] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.066] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.067] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.068] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.068] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.070] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.071] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.072] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.072] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.073] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:07:58.073] [INFO ] Offline device check completed. Found 47 offline devices, updated 0 statuses. [2026-08-19 08:07:58.073] [INFO ] Offline device check completed successfully [2026-08-19 08:08:14.943] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:08:14.943] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"-5149438-04-25T20:34:52Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-5149438-04-25T20:34:52Z","message":"Device Connected"}]} [2026-08-19 08:08:14.943] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-5149438-04-25T20:34:52Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "-5149438-04-25T20:34:52Z", "vendor" => "MoreFun"} [2026-08-19 08:08:14.943] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:08:14.943] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:08:14.947] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:08:14.950] [DEBUG] QUERY OK source="parameter_templates" db=3.0ms idle=663.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:08:14.954] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms queue=0.2ms idle=221.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:08:14.963] [DEBUG] QUERY OK source="parameter_template_values" db=0.3ms queue=0.6ms idle=11.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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:08:15.020] [DEBUG] QUERY OK db=40.6ms queue=1.3ms idle=23.5ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 5346, ~U[2026-08-19 08:08:14Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:08:14], ~N[2026-08-19 08:08:14]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:08:15.020] [INFO ] AutoPushService: Created push log 45761 for parameters (template: 7) [2026-08-19 08:08:15.036] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 5346, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:08:15.036] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:08:15.053] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:08:15.103] [DEBUG] QUERY OK db=47.7ms queue=1.3ms idle=90.9ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 1699, ~U[2026-08-19 08:08:15Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:08:15], ~N[2026-08-19 08:08:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:08:15.103] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:08:15.103] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 1699, "retry_count" => "3"} [2026-08-19 08:08:15.103] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:08:15.103] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:08:15.129] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms queue=0.8ms idle=106.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:08:15.144] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:08:15.153] [DEBUG] QUERY OK source="tms_terminals" db=3.7ms idle=46.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:08:15.153] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:08:15.387] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:08:15.387] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:08:15.387] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:08:15.429] [DEBUG] QUERY OK db=41.9ms idle=234.3ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 5442, ~U[2026-08-19 08:08:15Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:08:15], ~N[2026-08-19 08:08:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:08:15.430] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:08:15.430] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 5442, "retry_count" => "3"} [2026-08-19 08:08:15.430] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:08:15.430] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:08:15.432] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:08:15.433] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=143.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:08:15.433] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:08:15.491] [DEBUG] QUERY OK source="tms_terminals" db=58.1ms idle=3.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:08:15], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:08:15.492] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:08:15.496] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms 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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:08:15.531] [DEBUG] QUERY OK source="tms_terminals" db=34.7ms idle=4.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:08:15], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:08:15.532] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=35.5ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:08:15.578] [DEBUG] QUERY OK db=45.0ms idle=1.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "-5149438-04-25T20:34:52Z", ~N[2026-08-19 08:08:15], ~N[2026-08-19 08:08:15]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:08:15.578] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73171, oid: "org-id-placeholder", upload_time: "-5149438-04-25T20:34:52Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:15], updated_at: ~N[2026-08-19 08:08:15]} [2026-08-19 08:08:15.578] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-5149438-04-25T20:34:52Z", "value" => "online"} [2026-08-19 08:08:15.618] [DEBUG] QUERY OK db=39.7ms idle=46.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-5149438-04-25T20:34:52Z", "online", "status", 73171, ~N[2026-08-19 08:08:15], ~N[2026-08-19 08:08:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:15.619] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736504, itemkey: "status", value: "online", timestamp: "-5149438-04-25T20:34:52Z", message: "Device Connected", status_log_id: 73171, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:15], updated_at: ~N[2026-08-19 08:08:15]}} [2026-08-19 08:08:15.619] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:08:15.628] [WARN ] Unexpected async result [2026-08-19 08:08:15.628] [WARN ] Unexpected async result [2026-08-19 08:08:15.628] [WARN ] Unexpected async result [2026-08-19 08:08:18.554] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:08:18.555] [INFO ] Incoming JSON payload: {"oid":"9b04f946-a0d1-4507-bb64-c468e2cefe26","sn":"98251226730001","uploadTime":"2026-08-19T08:08:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"ram_free_mb","value":"1035","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:08:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:08:18Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:08:18.557] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "9b04f946-a0d1-4507-bb64-c468e2cefe26", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:08:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:08:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:08:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:08:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:08:18Z", "value" => "1035"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:08:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:08:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:08:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:08:18Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:08:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:08:18Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:08:18Z", "vendor" => "morefun"} [2026-08-19 08:08:18.557] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:08:18.557] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:08:18.558] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:08:18.570] [DEBUG] QUERY OK source="parameter_templates" db=11.8ms idle=1262.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-08-19 08:08:18.572] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms queue=0.7ms idle=271.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-08-19 08:08:18.572] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:08:18.573] [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:140 [2026-08-19 08:08:18.573] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:08:18.618] [DEBUG] QUERY OK source="tms_terminals" db=44.6ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:08:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:08:18.619] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:08:18.621] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=0.5ms idle=45.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:1184 [2026-08-19 08:08:18.667] [DEBUG] QUERY OK source="tms_terminals" db=45.3ms queue=0.5ms idle=3.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:08:18], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:08:18.672] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=4.7ms idle=46.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:08:18.741] [DEBUG] QUERY OK db=68.4ms idle=5.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["9b04f946-a0d1-4507-bb64-c468e2cefe26", 33, "2026-08-19T08:08:18Z", ~N[2026-08-19 08:08:18], ~N[2026-08-19 08:08:18]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:08:18.741] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73174, oid: "9b04f946-a0d1-4507-bb64-c468e2cefe26", upload_time: "2026-08-19T08:08:18Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:18], updated_at: ~N[2026-08-19 08:08:18]} [2026-08-19 08:08:18.742] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:08:18Z", "value" => "morefun"} [2026-08-19 08:08:18.821] [DEBUG] QUERY OK db=77.0ms idle=71.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "morefun", "vendor", 73174, ~N[2026-08-19 08:08:18], ~N[2026-08-19 08:08:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:18.821] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736507, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:18], updated_at: ~N[2026-08-19 08:08:18]}} [2026-08-19 08:08:18.821] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:08:18Z", "value" => "kiosk_launcher"} [2026-08-19 08:08:18.866] [DEBUG] QUERY OK db=44.4ms queue=0.1ms idle=80.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "kiosk_launcher", "model", 73174, ~N[2026-08-19 08:08:18], ~N[2026-08-19 08:08:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:18.867] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736509, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:18], updated_at: ~N[2026-08-19 08:08:18]}} [2026-08-19 08:08:18.867] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:08:18Z", "value" => "1.0"} [2026-08-19 08:08:18.945] [DEBUG] QUERY OK db=77.1ms idle=46.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "1.0", "app_version", 73174, ~N[2026-08-19 08:08:18], ~N[2026-08-19 08:08:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:18.945] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736512, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:18], updated_at: ~N[2026-08-19 08:08:18]}} [2026-08-19 08:08:18.945] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:08:18Z", "value" => "13"} [2026-08-19 08:08:19.017] [DEBUG] QUERY OK db=71.0ms idle=79.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "13", "android_version", 73174, ~N[2026-08-19 08:08:18], ~N[2026-08-19 08:08:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.017] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736515, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:18], updated_at: ~N[2026-08-19 08:08:18]}} [2026-08-19 08:08:19.017] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:08:18Z", "value" => "1035"} [2026-08-19 08:08:19.087] [DEBUG] QUERY OK db=69.1ms queue=0.1ms idle=72.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "1035", "ram_free_mb", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.089] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736519, itemkey: "ram_free_mb", value: "1035", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.089] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:08:18Z", "value" => "WIFI"} [2026-08-19 08:08:19.144] [DEBUG] QUERY OK db=52.7ms idle=74.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "WIFI", "network_type", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.144] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736522, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.144] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:08:18Z", "value" => "true"} [2026-08-19 08:08:19.222] [DEBUG] QUERY OK db=77.6ms idle=57.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "true", "kiosk_active", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.223] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736526, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.223] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:08:18Z", "value" => ""} [2026-08-19 08:08:19.312] [DEBUG] QUERY OK db=83.1ms queue=2.1ms idle=82.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:08:18Z", "sim_operator", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.312] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736529, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.315] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"} [2026-08-19 08:08:19.363] [DEBUG] QUERY OK db=46.4ms idle=10.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "UNKNOWN", "sim_number", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.365] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736533, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.365] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"} [2026-08-19 08:08:19.444] [DEBUG] QUERY OK db=79.1ms idle=53.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "UNKNOWN", "sim_iccid", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.444] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736536, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.445] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"} [2026-08-19 08:08:19.515] [DEBUG] QUERY OK db=69.8ms idle=81.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "UNKNOWN", "sim_imsi", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.515] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736538, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.515] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"} [2026-08-19 08:08:19.600] [DEBUG] QUERY OK db=83.8ms queue=0.1ms idle=72.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "UNKNOWN", "sim_iccid2", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.601] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736541, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.601] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:08:18Z", "value" => "UNKNOWN"} [2026-08-19 08:08:19.649] [DEBUG] QUERY OK db=47.2ms idle=87.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "UNKNOWN", "sim_imsi2", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736545, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.651] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:08:18Z", "value" => "6"} [2026-08-19 08:08:19.774] [DEBUG] QUERY OK db=123.1ms idle=50.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "6", "data_usage_mb", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.775] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736548, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.775] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:08:18Z", "value" => "0"} [2026-08-19 08:08:19.922] [DEBUG] QUERY OK db=144.1ms idle=128.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "0", "mobile_data_mb", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.922] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736551, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:19.923] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:08:18Z", "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), 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), Scanne" <> ...} [2026-08-19 08:08:19.965] [DEBUG] QUERY OK db=41.8ms idle=148.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:18Z", "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), 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), Scanne" <> ..., "installed_apps", 73174, ~N[2026-08-19 08:08:19], ~N[2026-08-19 08:08:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:19.971] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736552, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:08:18Z", message: nil, status_log_id: 73174, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:19], updated_at: ~N[2026-08-19 08:08:19]}} [2026-08-19 08:08:35.593] [INFO ] GET / [2026-08-19 08:08:35.593] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-08-19 08:08:35.606] [INFO ] Sent 200 in 12ms [2026-08-19 08:08:48.711] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:08:48.714] [INFO ] Incoming JSON payload: {"oid":"32ee6b71-6b39-436f-be2a-f59e5336e356","sn":"98251226730001","uploadTime":"2026-08-19T08:08:48Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"ram_free_mb","value":"1034","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:08:48Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:08:48Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:08:48.715] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "32ee6b71-6b39-436f-be2a-f59e5336e356", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:08:48Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:08:48Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:08:48Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:08:48Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:08:48Z", "value" => "1034"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:08:48Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:08:48Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:08:48Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:08:48Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:08:48Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:08:48Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:08:48Z", "vendor" => "morefun"} [2026-08-19 08:08:48.715] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:08:48.715] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:08:48.715] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:08:48.718] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms queue=0.1ms idle=1295.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-08-19 08:08:48.721] [DEBUG] QUERY OK source="parameter_templates" db=2.2ms idle=294.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-08-19 08:08:48.721] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:08:48.726] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=3.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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:08:48.727] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:08:48.735] [DEBUG] QUERY OK source="tms_terminals" db=7.7ms idle=6.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:08:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:08:48.741] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:08:48.743] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.9ms idle=14.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:1184 [2026-08-19 08:08:48.783] [DEBUG] QUERY OK source="tms_terminals" db=39.4ms idle=8.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:08:48], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:08:48.785] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.9ms queue=0.7ms idle=40.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:08:48.818] [DEBUG] QUERY OK db=33.1ms idle=2.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["32ee6b71-6b39-436f-be2a-f59e5336e356", 33, "2026-08-19T08:08:48Z", ~N[2026-08-19 08:08:48], ~N[2026-08-19 08:08:48]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:08:48.823] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73175, oid: "32ee6b71-6b39-436f-be2a-f59e5336e356", upload_time: "2026-08-19T08:08:48Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:48], updated_at: ~N[2026-08-19 08:08:48]} [2026-08-19 08:08:48.824] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:08:48Z", "value" => "morefun"} [2026-08-19 08:08:48.886] [DEBUG] QUERY OK db=61.5ms idle=39.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "morefun", "vendor", 73175, ~N[2026-08-19 08:08:48], ~N[2026-08-19 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:48.888] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736553, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:48], updated_at: ~N[2026-08-19 08:08:48]}} [2026-08-19 08:08:48.888] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:08:48Z", "value" => "kiosk_launcher"} [2026-08-19 08:08:48.959] [DEBUG] QUERY OK db=70.6ms idle=70.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "kiosk_launcher", "model", 73175, ~N[2026-08-19 08:08:48], ~N[2026-08-19 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:48.964] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736556, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:48], updated_at: ~N[2026-08-19 08:08:48]}} [2026-08-19 08:08:48.964] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:08:48Z", "value" => "1.0"} [2026-08-19 08:08:49.048] [DEBUG] QUERY OK db=83.6ms idle=78.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "1.0", "app_version", 73175, ~N[2026-08-19 08:08:48], ~N[2026-08-19 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.050] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736559, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:48], updated_at: ~N[2026-08-19 08:08:48]}} [2026-08-19 08:08:49.050] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:08:48Z", "value" => "13"} [2026-08-19 08:08:49.092] [DEBUG] QUERY OK db=41.9ms queue=0.2ms idle=90.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "13", "android_version", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.095] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736562, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.095] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:08:48Z", "value" => "1034"} [2026-08-19 08:08:49.175] [DEBUG] QUERY OK db=79.6ms idle=47.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "1034", "ram_free_mb", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736565, itemkey: "ram_free_mb", value: "1034", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.179] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:08:48Z", "value" => "WIFI"} [2026-08-19 08:08:49.224] [DEBUG] QUERY OK db=44.8ms idle=87.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "WIFI", "network_type", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.231] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736568, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.231] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:08:48Z", "value" => "true"} [2026-08-19 08:08:49.325] [DEBUG] QUERY OK db=93.3ms idle=56.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "true", "kiosk_active", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.334] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736571, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.334] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:08:48Z", "value" => ""} [2026-08-19 08:08:49.425] [DEBUG] QUERY OK db=89.5ms idle=111.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:08:48Z", "sim_operator", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.429] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736575, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.430] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"} [2026-08-19 08:08:49.499] [DEBUG] QUERY OK db=65.0ms queue=3.6ms idle=4.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "UNKNOWN", "sim_number", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.504] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736578, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.504] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"} [2026-08-19 08:08:49.560] [DEBUG] QUERY OK db=56.0ms idle=70.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "UNKNOWN", "sim_iccid", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.562] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736581, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.562] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"} [2026-08-19 08:08:49.609] [DEBUG] QUERY OK db=45.9ms idle=63.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "UNKNOWN", "sim_imsi", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.614] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736584, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.614] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"} [2026-08-19 08:08:49.702] [DEBUG] QUERY OK db=83.9ms queue=3.0ms idle=54.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "UNKNOWN", "sim_iccid2", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.705] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736587, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.705] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:08:48Z", "value" => "UNKNOWN"} [2026-08-19 08:08:49.767] [DEBUG] QUERY OK db=61.8ms idle=96.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "UNKNOWN", "sim_imsi2", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.770] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736590, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.770] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:08:48Z", "value" => "6"} [2026-08-19 08:08:49.963] [DEBUG] QUERY OK db=191.7ms idle=69.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "6", "data_usage_mb", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:49.967] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736593, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:49.967] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:08:48Z", "value" => "0"} [2026-08-19 08:08:50.068] [DEBUG] QUERY OK db=99.7ms idle=200.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "0", "mobile_data_mb", 73175, ~N[2026-08-19 08:08:49], ~N[2026-08-19 08:08:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:50.071] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736595, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:49], updated_at: ~N[2026-08-19 08:08:49]}} [2026-08-19 08:08:50.071] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:08:48Z", "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), 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), Scanne" <> ...} [2026-08-19 08:08:50.196] [DEBUG] QUERY OK db=123.4ms idle=109.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:08:48Z", "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), 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), Scanne" <> ..., "installed_apps", 73175, ~N[2026-08-19 08:08:50], ~N[2026-08-19 08:08:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:08:50.200] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736598, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:08:48Z", message: nil, status_log_id: 73175, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:08:50], updated_at: ~N[2026-08-19 08:08:50]}} [2026-08-19 08:09:19.043] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:09:19.043] [INFO ] Incoming JSON payload: {"oid":"7f3e2f58-2334-40f5-abef-ac0be468a1fc","sn":"98251226730001","uploadTime":"2026-08-19T08:09:18Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"ram_free_mb","value":"1039","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:09:18Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:09:18Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:09:19.044] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "7f3e2f58-2334-40f5-abef-ac0be468a1fc", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:09:18Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:09:18Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:09:18Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:09:18Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:09:18Z", "value" => "1039"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:09:18Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:09:18Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:09:18Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:09:18Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:09:18Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:09:18Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:09:18Z", "vendor" => "morefun"} [2026-08-19 08:09:19.044] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:09:19.044] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:09:19.044] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:09:19.061] [DEBUG] QUERY OK source="parameter_templates" db=16.8ms idle=1287.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-08-19 08:09:19.065] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms queue=1.5ms idle=499.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-08-19 08:09:19.066] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:09:19.078] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=10.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:140 [2026-08-19 08:09:19.079] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:09:19.107] [DEBUG] QUERY OK source="tms_terminals" db=23.8ms queue=4.1ms idle=13.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:09:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:09:19.107] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:09:19.114] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=38.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:1184 [2026-08-19 08:09:19.176] [DEBUG] QUERY OK source="tms_terminals" db=62.2ms idle=6.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:09:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:09:19.183] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=4.3ms idle=65.1ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:09:19.268] [DEBUG] QUERY OK db=83.4ms idle=7.7ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["7f3e2f58-2334-40f5-abef-ac0be468a1fc", 33, "2026-08-19T08:09:18Z", ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:09:19.277] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73180, oid: "7f3e2f58-2334-40f5-abef-ac0be468a1fc", upload_time: "2026-08-19T08:09:18Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]} [2026-08-19 08:09:19.278] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:09:18Z", "value" => "morefun"} [2026-08-19 08:09:19.337] [DEBUG] QUERY OK db=57.1ms idle=97.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "morefun", "vendor", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.345] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736603, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.345] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:09:18Z", "value" => "kiosk_launcher"} [2026-08-19 08:09:19.391] [DEBUG] QUERY OK db=41.8ms idle=81.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "kiosk_launcher", "model", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.394] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736606, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.396] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:09:18Z", "value" => "1.0"} [2026-08-19 08:09:19.472] [DEBUG] QUERY OK db=72.9ms idle=62.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "1.0", "app_version", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.477] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736609, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.477] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:09:18Z", "value" => "13"} [2026-08-19 08:09:19.534] [DEBUG] QUERY OK db=56.0ms idle=86.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "13", "android_version", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.538] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736612, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.538] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:09:18Z", "value" => "1039"} [2026-08-19 08:09:19.569] [DEBUG] QUERY OK db=29.9ms idle=67.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "1039", "ram_free_mb", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.576] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736616, itemkey: "ram_free_mb", value: "1039", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.577] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:09:18Z", "value" => "WIFI"} [2026-08-19 08:09:19.660] [DEBUG] QUERY OK db=82.3ms idle=7.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "WIFI", "network_type", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.672] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736619, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.674] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:09:18Z", "value" => "true"} [2026-08-19 08:09:19.735] [DEBUG] QUERY OK db=61.0ms idle=105.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "true", "kiosk_active", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.739] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736624, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.739] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:09:18Z", "value" => ""} [2026-08-19 08:09:19.811] [DEBUG] QUERY OK db=71.7ms idle=79.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:09:18Z", "sim_operator", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.821] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736629, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.821] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"} [2026-08-19 08:09:19.965] [DEBUG] QUERY OK db=144.0ms idle=85.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "UNKNOWN", "sim_number", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:19.971] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736633, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:19.971] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"} [2026-08-19 08:09:20.048] [DEBUG] QUERY OK db=76.5ms idle=160.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "UNKNOWN", "sim_iccid", 73180, ~N[2026-08-19 08:09:19], ~N[2026-08-19 08:09:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.050] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736635, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:19], updated_at: ~N[2026-08-19 08:09:19]}} [2026-08-19 08:09:20.050] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"} [2026-08-19 08:09:20.172] [DEBUG] QUERY OK db=121.6ms idle=84.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "UNKNOWN", "sim_imsi", 73180, ~N[2026-08-19 08:09:20], ~N[2026-08-19 08:09:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.203] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736639, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:20], updated_at: ~N[2026-08-19 08:09:20]}} [2026-08-19 08:09:20.207] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"} [2026-08-19 08:09:20.268] [DEBUG] QUERY OK db=59.9ms idle=159.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "UNKNOWN", "sim_iccid2", 73180, ~N[2026-08-19 08:09:20], ~N[2026-08-19 08:09:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.296] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736646, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:20], updated_at: ~N[2026-08-19 08:09:20]}} [2026-08-19 08:09:20.302] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:09:18Z", "value" => "UNKNOWN"} [2026-08-19 08:09:20.368] [DEBUG] QUERY OK db=65.1ms idle=130.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "UNKNOWN", "sim_imsi2", 73180, ~N[2026-08-19 08:09:20], ~N[2026-08-19 08:09:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.371] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736652, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:20], updated_at: ~N[2026-08-19 08:09:20]}} [2026-08-19 08:09:20.371] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:09:18Z", "value" => "6"} [2026-08-19 08:09:20.411] [DEBUG] QUERY OK db=39.4ms idle=103.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "6", "data_usage_mb", 73180, ~N[2026-08-19 08:09:20], ~N[2026-08-19 08:09:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.415] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736655, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:20], updated_at: ~N[2026-08-19 08:09:20]}} [2026-08-19 08:09:20.420] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:09:18Z", "value" => "0"} [2026-08-19 08:09:20.467] [DEBUG] QUERY OK db=45.8ms idle=53.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "0", "mobile_data_mb", 73180, ~N[2026-08-19 08:09:20], ~N[2026-08-19 08:09:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.475] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736659, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:20], updated_at: ~N[2026-08-19 08:09:20]}} [2026-08-19 08:09:20.476] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:09:18Z", "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), 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), Scanne" <> ...} [2026-08-19 08:09:20.536] [DEBUG] QUERY OK db=58.8ms idle=65.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:18Z", "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), 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), Scanne" <> ..., "installed_apps", 73180, ~N[2026-08-19 08:09:20], ~N[2026-08-19 08:09:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:20.546] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736661, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:09:18Z", message: nil, status_log_id: 73180, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:20], updated_at: ~N[2026-08-19 08:09:20]}} [2026-08-19 08:09:37.719] [INFO ] GET /admin/settlements/payouts [2026-08-19 08:09:37.721] [DEBUG] Processing with PlatformWeb.SettlementLive.PayoutDashboard.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-08-19 08:09:37.722] [DEBUG] QUERY OK source="users_tokens" db=0.7ms idle=1909.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:09:37.721318Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-08-19 08:09:37.723] [DEBUG] QUERY OK source="payout_batches" db=0.7ms idle=1097.1ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 ORDER BY p0.`payout_date` DESC LIMIT 100 [] ↳ PlatformWeb.SettlementLive.PayoutDashboard.mount/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:49 [2026-08-19 08:09:37.728] [DEBUG] QUERY OK source="bank_confirmation_batches" db=2.6ms idle=97.7ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:135 [2026-08-19 08:09:37.729] [DEBUG] QUERY OK source="bank_confirmation_batches" db=0.8ms idle=4.8ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:137 [2026-08-19 08:09:37.730] [INFO ] Sent 200 in 10ms [2026-08-19 08:09:39.774] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 36µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DCsMYAchJggFcC8ZAGNlfCBzKA0DMEgOMZYUqlELDGuVG3SEy6CNHAxT", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://localhost:4406/assets/app.css", "1" => "http://localhost:4406/assets/app.js"}, "vsn" => "2.0.0"} [2026-08-19 08:09:39.954] [DEBUG] MOUNT PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{} Session: %{"_csrf_token" => "AqU5vMcDA7ZOGP69YEkCKq0Z", "live_socket_id" => "users_sessions:vlekrmBiHBKdgn7HKmGWOYqHXCxToD09BA_bfO940f4=", "user_token" => <<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>} [2026-08-19 08:09:39.968] [DEBUG] QUERY OK source="users_tokens" db=0.7ms queue=13.1ms idle=1141.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)) [<<190, 87, 164, 174, 96, 98, 28, 18, 157, 130, 126, 199, 42, 97, 150, 57, 138, 135, 92, 44, 83, 160, 61, 61, 4, 15, 219, 124, 239, 120, 209, 254>>, "session", ~U[2026-08-19 08:09:39.954184Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-08-19 08:09:39.977] [DEBUG] QUERY OK source="payout_batches" db=9.0ms idle=336.9ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 ORDER BY p0.`payout_date` DESC LIMIT 100 [] ↳ PlatformWeb.SettlementLive.PayoutDashboard.mount/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:49 [2026-08-19 08:09:39.978] [DEBUG] Replied in 24ms [2026-08-19 08:09:39.983] [DEBUG] QUERY OK source="bank_confirmation_batches" db=4.5ms idle=252.2ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:135 [2026-08-19 08:09:39.986] [DEBUG] QUERY OK source="bank_confirmation_batches" db=2.7ms queue=0.1ms idle=5.6ms SELECT b0.`id`, b0.`filename`, b0.`uploaded_at`, b0.`total_records`, b0.`successful_records`, b0.`failed_records`, b0.`approval_status`, b0.`approved_at`, b0.`rejection_reason`, b0.`rejected_at`, b0.`committed_at`, b0.`commit_status`, b0.`commit_error`, b0.`user_id`, b0.`approved_by_user_id`, b0.`inserted_at`, b0.`updated_at` FROM `bank_confirmation_batches` AS b0 WHERE (b0.`approval_status` = 'pending') [] ↳ anonymous fn/2 in PlatformWeb.SettlementLive.PayoutDashboard.render/1, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:137 [2026-08-19 08:09:43.756] [DEBUG] HANDLE EVENT "view_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{"id" => "161", "value" => ""} [2026-08-19 08:09:43.758] [DEBUG] QUERY OK source="payout_batches" db=0.8ms idle=1116.5ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 WHERE (p0.`id` = ?) [161] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:696 [2026-08-19 08:09:43.762] [DEBUG] QUERY OK source="payout_items" db=4.0ms queue=0.3ms idle=115.7ms SELECT p0.`id`, p0.`payout_batch_id`, p0.`settlement_mis_id`, p0.`settlement_date`, p0.`merchant_mid`, p0.`merchant_id`, p0.`merchant_name`, p0.`merchant_ref_number`, p0.`bank_name`, p0.`iban`, p0.`account_number`, p0.`bank_code`, p0.`currency`, p0.`gross_amount`, p0.`total_deductions`, p0.`payout_amount`, p0.`transaction_count`, p0.`net_settlement_amount`, p0.`total_adjustments_credit`, p0.`total_adjustments_debit`, p0.`final_payout_amount`, p0.`total_gross_amount`, p0.`total_mdr_amount`, p0.`total_vat_amount`, p0.`status`, p0.`bank_transfer_ref`, p0.`confirmed_at`, p0.`rejection_reason`, p0.`rejected_at`, p0.`re_initiated_at`, p0.`re_initiated_batch_id`, p0.`inserted_at`, p0.`updated_at` FROM `payout_items` AS p0 WHERE (p0.`payout_batch_id` = ?) ORDER BY p0.`merchant_mid` [161] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:697 [2026-08-19 08:09:43.762] [DEBUG] Replied in 6ms [2026-08-19 08:09:47.326] [DEBUG] HANDLE EVENT "close_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{} [2026-08-19 08:09:47.327] [DEBUG] Replied in 217µs [2026-08-19 08:09:49.139] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:09:49.139] [INFO ] Incoming JSON payload: {"oid":"ac4aa3f6-0195-46d2-9348-b49703328778","sn":"98251226730001","uploadTime":"2026-08-19T08:09:49Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"ram_free_mb","value":"1036","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:09:49Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:09:49Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:09:49.146] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "ac4aa3f6-0195-46d2-9348-b49703328778", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:09:49Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:09:49Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:09:49Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:09:49Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:09:49Z", "value" => "1036"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:09:49Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:09:49Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:09:49Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:09:49Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:09:49Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:09:49Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:09:49Z", "vendor" => "morefun"} [2026-08-19 08:09:49.146] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:09:49.151] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:09:49.152] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:09:49.154] [DEBUG] QUERY OK source="parameter_templates" db=1.8ms idle=1391.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-08-19 08:09:49.155] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms idle=499.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-08-19 08:09:49.155] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:09:49.159] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms 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:140 [2026-08-19 08:09:49.159] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:09:49.182] [DEBUG] QUERY OK source="tms_terminals" db=22.6ms queue=0.1ms idle=4.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:09:49], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:09:49.182] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:09:49.188] [DEBUG] QUERY OK source="tms_terminals" db=5.5ms 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:1184 [2026-08-19 08:09:49.249] [DEBUG] QUERY OK source="tms_terminals" db=60.3ms idle=6.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:09:49], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:09:49.251] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=61.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:09:49.294] [DEBUG] QUERY OK db=41.6ms idle=3.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["ac4aa3f6-0195-46d2-9348-b49703328778", 33, "2026-08-19T08:09:49Z", ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:09:49.298] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73183, oid: "ac4aa3f6-0195-46d2-9348-b49703328778", upload_time: "2026-08-19T08:09:49Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]} [2026-08-19 08:09:49.298] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:09:49Z", "value" => "morefun"} [2026-08-19 08:09:49.335] [DEBUG] HANDLE EVENT "view_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{"id" => "167", "value" => ""} [2026-08-19 08:09:49.336] [DEBUG] QUERY OK source="payout_batches" db=0.6ms idle=41.3ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 WHERE (p0.`id` = ?) [167] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:696 [2026-08-19 08:09:49.339] [DEBUG] QUERY OK source="payout_items" db=2.6ms idle=0.2ms SELECT p0.`id`, p0.`payout_batch_id`, p0.`settlement_mis_id`, p0.`settlement_date`, p0.`merchant_mid`, p0.`merchant_id`, p0.`merchant_name`, p0.`merchant_ref_number`, p0.`bank_name`, p0.`iban`, p0.`account_number`, p0.`bank_code`, p0.`currency`, p0.`gross_amount`, p0.`total_deductions`, p0.`payout_amount`, p0.`transaction_count`, p0.`net_settlement_amount`, p0.`total_adjustments_credit`, p0.`total_adjustments_debit`, p0.`final_payout_amount`, p0.`total_gross_amount`, p0.`total_mdr_amount`, p0.`total_vat_amount`, p0.`status`, p0.`bank_transfer_ref`, p0.`confirmed_at`, p0.`rejection_reason`, p0.`rejected_at`, p0.`re_initiated_at`, p0.`re_initiated_batch_id`, p0.`inserted_at`, p0.`updated_at` FROM `payout_items` AS p0 WHERE (p0.`payout_batch_id` = ?) ORDER BY p0.`merchant_mid` [167] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:697 [2026-08-19 08:09:49.339] [DEBUG] Replied in 4ms [2026-08-19 08:09:49.346] [DEBUG] QUERY OK db=47.7ms idle=47.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "morefun", "vendor", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.356] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736667, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.356] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:09:49Z", "value" => "kiosk_launcher"} [2026-08-19 08:09:49.403] [DEBUG] QUERY OK db=46.4ms idle=17.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "kiosk_launcher", "model", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.412] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736670, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.412] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:09:49Z", "value" => "1.0"} [2026-08-19 08:09:49.460] [DEBUG] QUERY OK db=45.6ms idle=72.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "1.0", "app_version", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.464] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736672, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.465] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:09:49Z", "value" => "13"} [2026-08-19 08:09:49.504] [DEBUG] QUERY OK db=39.4ms idle=62.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "13", "android_version", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.513] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736676, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.513] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:09:49Z", "value" => "1036"} [2026-08-19 08:09:49.552] [DEBUG] QUERY OK db=38.7ms idle=53.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "1036", "ram_free_mb", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.554] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736679, itemkey: "ram_free_mb", value: "1036", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.554] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:09:49Z", "value" => "WIFI"} [2026-08-19 08:09:49.597] [DEBUG] QUERY OK db=42.6ms idle=50.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "WIFI", "network_type", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.602] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736681, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.603] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:09:49Z", "value" => "true"} [2026-08-19 08:09:49.653] [DEBUG] QUERY OK db=50.2ms idle=50.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "true", "kiosk_active", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.659] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736685, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.660] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:09:49Z", "value" => ""} [2026-08-19 08:09:49.694] [DEBUG] QUERY OK db=34.2ms idle=6.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:09:49Z", "sim_operator", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.705] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736688, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.706] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"} [2026-08-19 08:09:49.787] [DEBUG] QUERY OK db=80.8ms idle=46.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "UNKNOWN", "sim_number", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.791] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736691, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.791] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"} [2026-08-19 08:09:49.907] [DEBUG] QUERY OK db=113.6ms queue=0.4ms idle=99.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "UNKNOWN", "sim_iccid", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.912] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736694, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.912] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"} [2026-08-19 08:09:49.981] [DEBUG] QUERY OK db=65.1ms queue=3.4ms idle=125.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "UNKNOWN", "sim_imsi", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:49.985] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736697, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:49.986] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"} [2026-08-19 08:09:50.048] [DEBUG] QUERY OK db=56.0ms queue=1.9ms idle=78.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "UNKNOWN", "sim_iccid2", 73183, ~N[2026-08-19 08:09:49], ~N[2026-08-19 08:09:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:50.068] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736701, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:49], updated_at: ~N[2026-08-19 08:09:49]}} [2026-08-19 08:09:50.068] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:09:49Z", "value" => "UNKNOWN"} [2026-08-19 08:09:50.140] [DEBUG] QUERY OK db=67.8ms queue=4.0ms idle=87.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "UNKNOWN", "sim_imsi2", 73183, ~N[2026-08-19 08:09:50], ~N[2026-08-19 08:09:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:50.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736704, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:50], updated_at: ~N[2026-08-19 08:09:50]}} [2026-08-19 08:09:50.142] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:09:49Z", "value" => "6"} [2026-08-19 08:09:50.205] [DEBUG] QUERY OK db=60.9ms queue=0.1ms idle=100.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "6", "data_usage_mb", 73183, ~N[2026-08-19 08:09:50], ~N[2026-08-19 08:09:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:50.207] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736707, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:50], updated_at: ~N[2026-08-19 08:09:50]}} [2026-08-19 08:09:50.207] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:09:49Z", "value" => "0"} [2026-08-19 08:09:50.254] [DEBUG] QUERY OK db=46.3ms idle=67.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "0", "mobile_data_mb", 73183, ~N[2026-08-19 08:09:50], ~N[2026-08-19 08:09:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:50.256] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736710, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:50], updated_at: ~N[2026-08-19 08:09:50]}} [2026-08-19 08:09:50.257] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:09:49Z", "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), 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), Scanne" <> ...} [2026-08-19 08:09:50.338] [DEBUG] QUERY OK db=78.9ms idle=52.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:09:49Z", "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), 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), Scanne" <> ..., "installed_apps", 73183, ~N[2026-08-19 08:09:50], ~N[2026-08-19 08:09:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:09:50.343] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736712, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:09:49Z", message: nil, status_log_id: 73183, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:09:50], updated_at: ~N[2026-08-19 08:09:50]}} [2026-08-19 08:09:51.280] [DEBUG] HANDLE EVENT "close_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{} [2026-08-19 08:09:51.280] [DEBUG] Replied in 217µs [2026-08-19 08:09:53.063] [DEBUG] HANDLE EVENT "view_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{"id" => "159", "value" => ""} [2026-08-19 08:09:53.065] [DEBUG] QUERY OK source="payout_batches" db=0.5ms queue=0.1ms idle=1300.8ms SELECT p0.`id`, p0.`settlement_mis_id`, p0.`payout_date`, p0.`batch_type`, p0.`total_merchants`, p0.`total_items`, p0.`total_amount`, p0.`currency`, p0.`file_path`, p0.`file_name`, p0.`encryption_method`, p0.`batch_reference`, p0.`encrypted_file_path`, p0.`file_hash`, p0.`encryption_key_ref`, p0.`generated_by`, p0.`generated_at`, p0.`transmission_method`, p0.`status`, p0.`transmitted_at`, p0.`transmission_reference`, p0.`bank_confirmation_ref`, p0.`failure_reason`, p0.`confirmed_at`, p0.`confirmed_item_count`, p0.`rejected_item_count`, p0.`inserted_at`, p0.`updated_at` FROM `payout_batches` AS p0 WHERE (p0.`id` = ?) [159] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:696 [2026-08-19 08:09:53.066] [DEBUG] QUERY OK source="payout_items" db=0.5ms queue=0.2ms idle=397.7ms SELECT p0.`id`, p0.`payout_batch_id`, p0.`settlement_mis_id`, p0.`settlement_date`, p0.`merchant_mid`, p0.`merchant_id`, p0.`merchant_name`, p0.`merchant_ref_number`, p0.`bank_name`, p0.`iban`, p0.`account_number`, p0.`bank_code`, p0.`currency`, p0.`gross_amount`, p0.`total_deductions`, p0.`payout_amount`, p0.`transaction_count`, p0.`net_settlement_amount`, p0.`total_adjustments_credit`, p0.`total_adjustments_debit`, p0.`final_payout_amount`, p0.`total_gross_amount`, p0.`total_mdr_amount`, p0.`total_vat_amount`, p0.`status`, p0.`bank_transfer_ref`, p0.`confirmed_at`, p0.`rejection_reason`, p0.`rejected_at`, p0.`re_initiated_at`, p0.`re_initiated_batch_id`, p0.`inserted_at`, p0.`updated_at` FROM `payout_items` AS p0 WHERE (p0.`payout_batch_id` = ?) ORDER BY p0.`merchant_mid` [159] ↳ PlatformWeb.SettlementLive.PayoutDashboard.handle_event/3, at: lib/platform_web/live/settlement_live/payout_dashboard.ex:697 [2026-08-19 08:09:53.066] [DEBUG] Replied in 3ms [2026-08-19 08:09:55.095] [DEBUG] HANDLE EVENT "close_items" in PlatformWeb.SettlementLive.PayoutDashboard Parameters: %{} [2026-08-19 08:09:55.095] [DEBUG] Replied in 197µs [2026-08-19 08:10:19.270] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:10:19.271] [INFO ] Incoming JSON payload: {"oid":"c029a75a-87f7-4eb8-8e2d-a4019592b774","sn":"98251226730001","uploadTime":"2026-08-19T08:10:19Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:10:19Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:10:19Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:10:19.284] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "c029a75a-87f7-4eb8-8e2d-a4019592b774", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:10:19Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:10:19Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:10:19Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:10:19Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:10:19Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:10:19Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:10:19Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:10:19Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:10:19Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:10:19Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:10:19Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:10:19Z", "vendor" => "morefun"} [2026-08-19 08:10:19.285] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:10:19.287] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:10:19.289] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:10:19.291] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms idle=1489.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-08-19 08:10:19.293] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=487.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-08-19 08:10:19.293] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:10:19.294] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms 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:140 [2026-08-19 08:10:19.295] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:10:19.336] [DEBUG] QUERY OK source="tms_terminals" db=41.0ms queue=0.2ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:10:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:10:19.336] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:10:19.341] [DEBUG] QUERY OK source="tms_terminals" db=4.0ms idle=42.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:1184 [2026-08-19 08:10:19.406] [DEBUG] QUERY OK source="tms_terminals" db=62.5ms queue=0.1ms idle=7.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:10:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:10:19.416] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=9.1ms queue=0.1ms idle=66.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:10:19.598] [DEBUG] QUERY OK db=181.9ms idle=10.1ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["c029a75a-87f7-4eb8-8e2d-a4019592b774", 33, "2026-08-19T08:10:19Z", ~N[2026-08-19 08:10:19], ~N[2026-08-19 08:10:19]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:10:19.600] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73186, oid: "c029a75a-87f7-4eb8-8e2d-a4019592b774", upload_time: "2026-08-19T08:10:19Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:19], updated_at: ~N[2026-08-19 08:10:19]} [2026-08-19 08:10:19.601] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:10:19Z", "value" => "morefun"} [2026-08-19 08:10:19.840] [DEBUG] QUERY OK db=239.3ms idle=185.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "morefun", "vendor", 73186, ~N[2026-08-19 08:10:19], ~N[2026-08-19 08:10:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:19.846] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736714, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:19], updated_at: ~N[2026-08-19 08:10:19]}} [2026-08-19 08:10:19.846] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:10:19Z", "value" => "kiosk_launcher"} [2026-08-19 08:10:19.897] [DEBUG] QUERY OK db=49.5ms idle=40.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "kiosk_launcher", "model", 73186, ~N[2026-08-19 08:10:19], ~N[2026-08-19 08:10:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:19.903] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736718, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:19], updated_at: ~N[2026-08-19 08:10:19]}} [2026-08-19 08:10:19.904] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:10:19Z", "value" => "1.0"} [2026-08-19 08:10:19.966] [DEBUG] QUERY OK db=61.0ms idle=64.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "1.0", "app_version", 73186, ~N[2026-08-19 08:10:19], ~N[2026-08-19 08:10:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:19.972] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736721, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:19], updated_at: ~N[2026-08-19 08:10:19]}} [2026-08-19 08:10:19.972] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:10:19Z", "value" => "13"} [2026-08-19 08:10:20.047] [DEBUG] QUERY OK db=74.8ms idle=75.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "13", "android_version", 73186, ~N[2026-08-19 08:10:19], ~N[2026-08-19 08:10:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.058] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736724, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:19], updated_at: ~N[2026-08-19 08:10:19]}} [2026-08-19 08:10:20.058] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:10:19Z", "value" => "1033"} [2026-08-19 08:10:20.093] [DEBUG] QUERY OK db=34.5ms idle=92.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "1033", "ram_free_mb", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.099] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736728, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.099] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:10:19Z", "value" => "WIFI"} [2026-08-19 08:10:20.164] [DEBUG] QUERY OK db=64.8ms idle=52.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "WIFI", "network_type", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.166] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736731, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.166] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:10:19Z", "value" => "true"} [2026-08-19 08:10:20.214] [DEBUG] QUERY OK db=48.0ms idle=72.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "true", "kiosk_active", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.219] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736733, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.221] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:10:19Z", "value" => ""} [2026-08-19 08:10:20.262] [DEBUG] QUERY OK db=41.0ms queue=0.2ms idle=56.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:10:19Z", "sim_operator", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.265] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736736, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.266] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"} [2026-08-19 08:10:20.332] [DEBUG] QUERY OK db=65.5ms queue=0.6ms idle=51.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "UNKNOWN", "sim_number", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.337] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736739, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.337] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"} [2026-08-19 08:10:20.397] [DEBUG] QUERY OK db=54.0ms decode=5.0ms idle=76.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "UNKNOWN", "sim_iccid", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.405] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736743, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.405] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"} [2026-08-19 08:10:20.469] [DEBUG] QUERY OK db=63.8ms idle=73.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "UNKNOWN", "sim_imsi", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.473] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736747, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.473] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"} [2026-08-19 08:10:20.546] [DEBUG] QUERY OK db=71.8ms decode=0.2ms idle=80.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "UNKNOWN", "sim_iccid2", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.549] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736750, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.549] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:10:19Z", "value" => "UNKNOWN"} [2026-08-19 08:10:20.585] [DEBUG] QUERY OK db=30.5ms idle=85.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "UNKNOWN", "sim_imsi2", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.604] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736753, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.604] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:10:19Z", "value" => "6"} [2026-08-19 08:10:20.660] [DEBUG] QUERY OK db=50.5ms idle=63.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "6", "data_usage_mb", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.670] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736757, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.670] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:10:19Z", "value" => "0"} [2026-08-19 08:10:20.729] [DEBUG] QUERY OK db=55.1ms queue=0.4ms idle=88.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "0", "mobile_data_mb", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.730] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736759, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:20.732] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:10:19Z", "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), 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), Scanne" <> ...} [2026-08-19 08:10:20.780] [DEBUG] QUERY OK db=47.3ms queue=0.1ms idle=72.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:19Z", "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), 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), Scanne" <> ..., "installed_apps", 73186, ~N[2026-08-19 08:10:20], ~N[2026-08-19 08:10:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:20.787] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736760, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:10:19Z", message: nil, status_log_id: 73186, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:20], updated_at: ~N[2026-08-19 08:10:20]}} [2026-08-19 08:10:49.381] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:10:49.381] [INFO ] Incoming JSON payload: {"oid":"997600e9-671f-48b5-ab87-2e83a3e14388","sn":"98251226730001","uploadTime":"2026-08-19T08:10:49Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"ram_free_mb","value":"1029","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:10:49Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:10:49Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:10:49.397] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "997600e9-671f-48b5-ab87-2e83a3e14388", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:10:49Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:10:49Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:10:49Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:10:49Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:10:49Z", "value" => "1029"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:10:49Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:10:49Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:10:49Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:10:49Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:10:49Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:10:49Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:10:49Z", "vendor" => "morefun"} [2026-08-19 08:10:49.398] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:10:49.398] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:10:49.399] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:10:49.401] [DEBUG] QUERY OK source="parameter_templates" db=2.5ms idle=617.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-08-19 08:10:49.406] [DEBUG] QUERY OK source="parameter_templates" db=4.4ms idle=491.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-08-19 08:10:49.406] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:10:49.415] [DEBUG] QUERY OK source="tms_terminals" db=8.2ms 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:140 [2026-08-19 08:10:49.415] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:10:49.471] [DEBUG] QUERY OK source="tms_terminals" db=55.6ms idle=9.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:10:49], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:10:49.471] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:10:49.475] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms idle=56.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:1184 [2026-08-19 08:10:49.531] [DEBUG] QUERY OK source="tms_terminals" db=55.1ms idle=4.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:10:49], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:10:49.534] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.9ms idle=55.9ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:10:49.576] [DEBUG] QUERY OK db=40.6ms idle=4.7ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["997600e9-671f-48b5-ab87-2e83a3e14388", 33, "2026-08-19T08:10:49Z", ~N[2026-08-19 08:10:49], ~N[2026-08-19 08:10:49]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:10:49.582] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73188, oid: "997600e9-671f-48b5-ab87-2e83a3e14388", upload_time: "2026-08-19T08:10:49Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:49], updated_at: ~N[2026-08-19 08:10:49]} [2026-08-19 08:10:49.583] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:10:49Z", "value" => "morefun"} [2026-08-19 08:10:49.626] [DEBUG] QUERY OK db=42.3ms decode=0.1ms idle=48.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "morefun", "vendor", 73188, ~N[2026-08-19 08:10:49], ~N[2026-08-19 08:10:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:49.631] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736761, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:49], updated_at: ~N[2026-08-19 08:10:49]}} [2026-08-19 08:10:49.632] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:10:49Z", "value" => "kiosk_launcher"} [2026-08-19 08:10:49.799] [DEBUG] QUERY OK db=166.5ms idle=56.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "kiosk_launcher", "model", 73188, ~N[2026-08-19 08:10:49], ~N[2026-08-19 08:10:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:49.806] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736764, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:49], updated_at: ~N[2026-08-19 08:10:49]}} [2026-08-19 08:10:49.806] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:10:49Z", "value" => "1.0"} [2026-08-19 08:10:49.897] [DEBUG] QUERY OK db=90.2ms idle=180.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "1.0", "app_version", 73188, ~N[2026-08-19 08:10:49], ~N[2026-08-19 08:10:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:49.905] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736768, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:49], updated_at: ~N[2026-08-19 08:10:49]}} [2026-08-19 08:10:49.905] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:10:49Z", "value" => "13"} [2026-08-19 08:10:49.973] [DEBUG] QUERY OK db=64.0ms queue=3.6ms idle=106.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "13", "android_version", 73188, ~N[2026-08-19 08:10:49], ~N[2026-08-19 08:10:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:49.984] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736772, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:49], updated_at: ~N[2026-08-19 08:10:49]}} [2026-08-19 08:10:49.985] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:10:49Z", "value" => "1029"} [2026-08-19 08:10:50.060] [DEBUG] QUERY OK db=73.0ms queue=1.6ms idle=64.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "1029", "ram_free_mb", 73188, ~N[2026-08-19 08:10:49], ~N[2026-08-19 08:10:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.062] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736775, itemkey: "ram_free_mb", value: "1029", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:49], updated_at: ~N[2026-08-19 08:10:49]}} [2026-08-19 08:10:50.062] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:10:49Z", "value" => "WIFI"} [2026-08-19 08:10:50.139] [DEBUG] QUERY OK db=74.8ms queue=0.1ms idle=89.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "WIFI", "network_type", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736778, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.142] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:10:49Z", "value" => "true"} [2026-08-19 08:10:50.202] [DEBUG] QUERY OK db=59.1ms idle=82.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "true", "kiosk_active", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.208] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736781, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.208] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:10:49Z", "value" => ""} [2026-08-19 08:10:50.276] [DEBUG] QUERY OK db=66.9ms idle=71.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:10:49Z", "sim_operator", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.284] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736786, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.284] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"} [2026-08-19 08:10:50.353] [DEBUG] QUERY OK db=66.0ms decode=0.1ms queue=0.8ms idle=84.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "UNKNOWN", "sim_number", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.360] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736789, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.360] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"} [2026-08-19 08:10:50.430] [DEBUG] QUERY OK db=69.5ms idle=84.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "UNKNOWN", "sim_iccid", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.442] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736793, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.444] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"} [2026-08-19 08:10:50.515] [DEBUG] QUERY OK db=62.6ms idle=99.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "UNKNOWN", "sim_imsi", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.520] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736798, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.520] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"} [2026-08-19 08:10:50.578] [DEBUG] QUERY OK db=56.0ms idle=91.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "UNKNOWN", "sim_iccid2", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.583] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736803, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.583] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:10:49Z", "value" => "UNKNOWN"} [2026-08-19 08:10:50.629] [DEBUG] QUERY OK db=43.1ms idle=70.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "UNKNOWN", "sim_imsi2", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.632] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736805, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.632] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:10:49Z", "value" => "6"} [2026-08-19 08:10:50.701] [DEBUG] QUERY OK db=68.8ms idle=54.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "6", "data_usage_mb", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.712] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736809, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.712] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:10:49Z", "value" => "0"} [2026-08-19 08:10:50.773] [DEBUG] QUERY OK db=56.2ms idle=88.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "0", "mobile_data_mb", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736813, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:10:50.785] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:10:49Z", "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), 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), Scanne" <> ...} [2026-08-19 08:10:50.886] [DEBUG] QUERY OK db=92.0ms queue=5.4ms idle=83.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:10:49Z", "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), 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), Scanne" <> ..., "installed_apps", 73188, ~N[2026-08-19 08:10:50], ~N[2026-08-19 08:10:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:10:50.893] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736817, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:10:49Z", message: nil, status_log_id: 73188, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:10:50], updated_at: ~N[2026-08-19 08:10:50]}} [2026-08-19 08:11:19.479] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:11:19.479] [INFO ] Incoming JSON payload: {"oid":"edd4fcc8-c998-43f1-b84d-009e2e6480d0","sn":"98251226730001","uploadTime":"2026-08-19T08:11:19Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"ram_free_mb","value":"1036","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:11:19Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:11:19Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:11:19.483] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "edd4fcc8-c998-43f1-b84d-009e2e6480d0", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:11:19Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:11:19Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:11:19Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:11:19Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:11:19Z", "value" => "1036"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:11:19Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:11:19Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:11:19Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:11:19Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:11:19Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:11:19Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:11:19Z", "vendor" => "morefun"} [2026-08-19 08:11:19.483] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:11:19.483] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:11:19.483] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:11:19.488] [DEBUG] QUERY OK source="parameter_templates" db=3.9ms idle=694.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-08-19 08:11:19.490] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms idle=447.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-08-19 08:11:19.490] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:11:19.492] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:11:19.492] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:11:19.519] [DEBUG] QUERY OK source="tms_terminals" db=25.2ms idle=2.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:11:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:11:19.519] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:11:19.524] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=2.4ms idle=27.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:1184 [2026-08-19 08:11:19.582] [DEBUG] QUERY OK source="tms_terminals" db=56.6ms queue=0.3ms idle=7.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:11:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:11:19.583] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.3ms idle=0.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:11:19.655] [DEBUG] QUERY OK db=71.1ms idle=0.2ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["edd4fcc8-c998-43f1-b84d-009e2e6480d0", 33, "2026-08-19T08:11:19Z", ~N[2026-08-19 08:11:19], ~N[2026-08-19 08:11:19]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:11:19.657] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73195, oid: "edd4fcc8-c998-43f1-b84d-009e2e6480d0", upload_time: "2026-08-19T08:11:19Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:19], updated_at: ~N[2026-08-19 08:11:19]} [2026-08-19 08:11:19.657] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:11:19Z", "value" => "morefun"} [2026-08-19 08:11:19.734] [DEBUG] QUERY OK db=75.8ms idle=72.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "morefun", "vendor", 73195, ~N[2026-08-19 08:11:19], ~N[2026-08-19 08:11:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:19.736] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736828, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:19], updated_at: ~N[2026-08-19 08:11:19]}} [2026-08-19 08:11:19.736] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:11:19Z", "value" => "kiosk_launcher"} [2026-08-19 08:11:19.813] [DEBUG] QUERY OK db=75.2ms idle=81.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "kiosk_launcher", "model", 73195, ~N[2026-08-19 08:11:19], ~N[2026-08-19 08:11:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:19.817] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736831, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:19], updated_at: ~N[2026-08-19 08:11:19]}} [2026-08-19 08:11:19.817] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:11:19Z", "value" => "1.0"} [2026-08-19 08:11:19.889] [DEBUG] QUERY OK db=70.9ms idle=83.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "1.0", "app_version", 73195, ~N[2026-08-19 08:11:19], ~N[2026-08-19 08:11:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:19.893] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736836, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:19], updated_at: ~N[2026-08-19 08:11:19]}} [2026-08-19 08:11:19.894] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:11:19Z", "value" => "13"} [2026-08-19 08:11:19.939] [DEBUG] QUERY OK db=43.1ms idle=82.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "13", "android_version", 73195, ~N[2026-08-19 08:11:19], ~N[2026-08-19 08:11:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:19.943] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736840, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:19], updated_at: ~N[2026-08-19 08:11:19]}} [2026-08-19 08:11:19.943] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:11:19Z", "value" => "1036"} [2026-08-19 08:11:20.004] [DEBUG] QUERY OK db=60.6ms idle=54.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "1036", "ram_free_mb", 73195, ~N[2026-08-19 08:11:19], ~N[2026-08-19 08:11:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.006] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736844, itemkey: "ram_free_mb", value: "1036", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:19], updated_at: ~N[2026-08-19 08:11:19]}} [2026-08-19 08:11:20.006] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:11:19Z", "value" => "WIFI"} [2026-08-19 08:11:20.092] [DEBUG] QUERY OK db=79.3ms queue=0.3ms idle=74.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "WIFI", "network_type", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.094] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736848, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.094] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:11:19Z", "value" => "true"} [2026-08-19 08:11:20.134] [DEBUG] QUERY OK db=39.5ms idle=51.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "true", "kiosk_active", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.140] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736851, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.141] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:11:19Z", "value" => ""} [2026-08-19 08:11:20.206] [DEBUG] QUERY OK db=64.1ms idle=50.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:11:19Z", "sim_operator", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.213] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736855, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.213] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"} [2026-08-19 08:11:20.270] [DEBUG] QUERY OK db=56.6ms queue=0.1ms idle=79.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "UNKNOWN", "sim_number", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.276] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736859, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.276] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"} [2026-08-19 08:11:20.385] [DEBUG] QUERY OK db=108.2ms idle=70.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "UNKNOWN", "sim_iccid", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.389] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736863, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.390] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"} [2026-08-19 08:11:20.460] [DEBUG] QUERY OK db=67.4ms queue=0.3ms idle=120.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "UNKNOWN", "sim_imsi", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.462] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736867, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.462] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"} [2026-08-19 08:11:20.511] [DEBUG] QUERY OK db=49.4ms idle=77.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "UNKNOWN", "sim_iccid2", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736871, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.525] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:11:19Z", "value" => "UNKNOWN"} [2026-08-19 08:11:20.593] [DEBUG] QUERY OK db=58.6ms idle=75.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "UNKNOWN", "sim_imsi2", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.595] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736875, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.596] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:11:19Z", "value" => "6"} [2026-08-19 08:11:20.667] [DEBUG] QUERY OK db=70.4ms queue=0.3ms idle=84.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "6", "data_usage_mb", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.673] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736879, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.673] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:11:19Z", "value" => "0"} [2026-08-19 08:11:20.739] [DEBUG] QUERY OK db=65.1ms idle=81.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "0", "mobile_data_mb", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.745] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736883, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:20.745] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:11:19Z", "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), 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), Scanne" <> ...} [2026-08-19 08:11:20.817] [DEBUG] QUERY OK db=70.2ms idle=78.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:19Z", "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), 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), Scanne" <> ..., "installed_apps", 73195, ~N[2026-08-19 08:11:20], ~N[2026-08-19 08:11:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:20.823] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736886, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:11:19Z", message: nil, status_log_id: 73195, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:20], updated_at: ~N[2026-08-19 08:11:20]}} [2026-08-19 08:11:38.849] [ERROR] ** (Bandit.TransportError) Unrecoverable error: timeout [2026-08-19 08:11:49.601] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:11:49.601] [INFO ] Incoming JSON payload: {"oid":"f3fd5b54-446d-4547-a154-120d8be4ef56","sn":"98251226730001","uploadTime":"2026-08-19T08:11:49Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:11:49Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:11:49Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:11:49.602] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "f3fd5b54-446d-4547-a154-120d8be4ef56", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:11:49Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:11:49Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:11:49Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:11:49Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:11:49Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:11:49Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:11:49Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:11:49Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:11:49Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:11:49Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:11:49Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:11:49Z", "vendor" => "morefun"} [2026-08-19 08:11:49.602] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:11:49.602] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:11:49.602] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:11:49.605] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=804.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-08-19 08:11:49.606] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=484.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-08-19 08:11:49.607] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:11:49.609] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms 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:140 [2026-08-19 08:11:49.609] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:11:49.664] [DEBUG] QUERY OK source="tms_terminals" db=52.3ms queue=0.1ms idle=6.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:11:49], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:11:49.665] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:11:49.666] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=56.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:1184 [2026-08-19 08:11:49.715] [DEBUG] QUERY OK source="tms_terminals" db=47.6ms idle=2.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:11:49], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:11:49.716] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.9ms idle=48.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:11:49.743] [DEBUG] QUERY OK db=26.9ms idle=1.8ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["f3fd5b54-446d-4547-a154-120d8be4ef56", 33, "2026-08-19T08:11:49Z", ~N[2026-08-19 08:11:49], ~N[2026-08-19 08:11:49]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:11:49.745] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73196, oid: "f3fd5b54-446d-4547-a154-120d8be4ef56", upload_time: "2026-08-19T08:11:49Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:49], updated_at: ~N[2026-08-19 08:11:49]} [2026-08-19 08:11:49.745] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:11:49Z", "value" => "morefun"} [2026-08-19 08:11:49.789] [DEBUG] QUERY OK db=43.3ms idle=29.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "morefun", "vendor", 73196, ~N[2026-08-19 08:11:49], ~N[2026-08-19 08:11:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:49.790] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736889, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:49], updated_at: ~N[2026-08-19 08:11:49]}} [2026-08-19 08:11:49.790] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:11:49Z", "value" => "kiosk_launcher"} [2026-08-19 08:11:49.836] [DEBUG] QUERY OK db=45.0ms idle=47.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "kiosk_launcher", "model", 73196, ~N[2026-08-19 08:11:49], ~N[2026-08-19 08:11:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:49.840] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736893, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:49], updated_at: ~N[2026-08-19 08:11:49]}} [2026-08-19 08:11:49.840] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:11:49Z", "value" => "1.0"} [2026-08-19 08:11:49.897] [DEBUG] QUERY OK db=56.7ms idle=51.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "1.0", "app_version", 73196, ~N[2026-08-19 08:11:49], ~N[2026-08-19 08:11:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:49.901] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736896, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:49], updated_at: ~N[2026-08-19 08:11:49]}} [2026-08-19 08:11:49.901] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:11:49Z", "value" => "13"} [2026-08-19 08:11:49.951] [DEBUG] QUERY OK db=49.7ms idle=65.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "13", "android_version", 73196, ~N[2026-08-19 08:11:49], ~N[2026-08-19 08:11:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:49.953] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736901, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:49], updated_at: ~N[2026-08-19 08:11:49]}} [2026-08-19 08:11:49.953] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:11:49Z", "value" => "1033"} [2026-08-19 08:11:50.007] [DEBUG] QUERY OK db=53.7ms idle=56.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "1033", "ram_free_mb", 73196, ~N[2026-08-19 08:11:49], ~N[2026-08-19 08:11:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.011] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736905, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:49], updated_at: ~N[2026-08-19 08:11:49]}} [2026-08-19 08:11:50.011] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:11:49Z", "value" => "WIFI"} [2026-08-19 08:11:50.093] [DEBUG] QUERY OK db=81.3ms queue=0.5ms idle=59.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "WIFI", "network_type", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.095] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736909, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.096] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:11:49Z", "value" => "true"} [2026-08-19 08:11:50.194] [DEBUG] QUERY OK db=97.3ms idle=89.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "true", "kiosk_active", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.196] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736913, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.196] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:11:49Z", "value" => ""} [2026-08-19 08:11:50.266] [DEBUG] QUERY OK db=69.1ms idle=74.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:11:49Z", "sim_operator", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.269] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736916, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.270] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"} [2026-08-19 08:11:50.311] [DEBUG] QUERY OK db=41.2ms idle=76.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "UNKNOWN", "sim_number", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.314] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736920, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.315] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"} [2026-08-19 08:11:50.380] [DEBUG] QUERY OK db=63.9ms queue=0.2ms idle=49.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "UNKNOWN", "sim_iccid", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.384] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736924, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.385] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"} [2026-08-19 08:11:50.452] [DEBUG] QUERY OK db=62.3ms queue=1.2ms idle=76.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "UNKNOWN", "sim_imsi", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.456] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736930, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.456] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"} [2026-08-19 08:11:50.514] [DEBUG] QUERY OK db=56.1ms idle=78.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "UNKNOWN", "sim_iccid2", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.519] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736935, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.519] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:11:49Z", "value" => "UNKNOWN"} [2026-08-19 08:11:50.585] [DEBUG] QUERY OK db=65.6ms idle=67.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "UNKNOWN", "sim_imsi2", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.591] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736937, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.591] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:11:49Z", "value" => "6"} [2026-08-19 08:11:50.644] [DEBUG] QUERY OK db=52.3ms idle=77.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "6", "data_usage_mb", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.648] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736942, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.649] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:11:49Z", "value" => "0"} [2026-08-19 08:11:50.716] [DEBUG] QUERY OK db=66.6ms idle=63.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "0", "mobile_data_mb", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.725] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736947, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:11:50.726] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:11:49Z", "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), 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), Scanne" <> ...} [2026-08-19 08:11:50.970] [DEBUG] QUERY OK db=242.9ms queue=0.4ms idle=82.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:11:49Z", "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), 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), Scanne" <> ..., "installed_apps", 73196, ~N[2026-08-19 08:11:50], ~N[2026-08-19 08:11:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:11:50.973] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736950, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:11:49Z", message: nil, status_log_id: 73196, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:11:50], updated_at: ~N[2026-08-19 08:11:50]}} [2026-08-19 08:12:13.331] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:12:13.331] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"5301297-10-27T19:23:07Z","org.device":[{"itemkey":"status","value":"online","timestamp":"5301297-10-27T19:23:07Z","message":"Device Connected"}]} [2026-08-19 08:12:13.331] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5301297-10-27T19:23:07Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "5301297-10-27T19:23:07Z"} [2026-08-19 08:12:13.331] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:12:13.341] [DEBUG] QUERY OK source="tms_terminals" db=9.8ms queue=0.1ms idle=530.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:12:13.343] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:12:13.365] [DEBUG] QUERY OK source="tms_terminals" db=18.3ms queue=3.1ms idle=140.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:12:13], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:12:13.368] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms 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.`serial_number` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:12:13.415] [DEBUG] QUERY OK source="tms_terminals" db=46.9ms idle=3.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:12:13], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:12:13.418] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.4ms idle=47.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:12:13.489] [DEBUG] QUERY OK db=70.7ms queue=0.1ms idle=3.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "5301297-10-27T19:23:07Z", ~N[2026-08-19 08:12:13], ~N[2026-08-19 08:12:13]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:12:13.492] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73203, oid: "org-id-placeholder", upload_time: "5301297-10-27T19:23:07Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:13], updated_at: ~N[2026-08-19 08:12:13]} [2026-08-19 08:12:13.492] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5301297-10-27T19:23:07Z", "value" => "online"} [2026-08-19 08:12:13.542] [DEBUG] QUERY OK db=49.4ms queue=0.1ms idle=74.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "5301297-10-27T19:23:07Z", "online", "status", 73203, ~N[2026-08-19 08:12:13], ~N[2026-08-19 08:12:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:13.544] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736956, itemkey: "status", value: "online", timestamp: "5301297-10-27T19:23:07Z", message: "Device Connected", status_log_id: 73203, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:13], updated_at: ~N[2026-08-19 08:12:13]}} [2026-08-19 08:12:13.544] [INFO ] Setting terminal 61250415798001 status to 'online' from status itemkey [2026-08-19 08:12:19.742] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:12:19.742] [INFO ] Incoming JSON payload: {"oid":"4d213f3a-8e17-4b94-bcdc-1ea11450de68","sn":"98251226730001","uploadTime":"2026-08-19T08:12:19Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:12:19Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:12:19Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:12:19.743] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "4d213f3a-8e17-4b94-bcdc-1ea11450de68", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:12:19Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:12:19Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:12:19Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:12:19Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:12:19Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:12:19Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:12:19Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:12:19Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:12:19Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:12:19Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:12:19Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:12:19Z", "vendor" => "morefun"} [2026-08-19 08:12:19.743] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:12:19.743] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:12:19.743] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:12:19.745] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms queue=0.2ms idle=942.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-08-19 08:12:19.746] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=528.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-08-19 08:12:19.752] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:12:19.764] [DEBUG] QUERY OK source="tms_terminals" db=7.9ms queue=1.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:12:19.766] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:12:19.827] [DEBUG] QUERY OK source="tms_terminals" db=59.9ms queue=0.6ms idle=19.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:12:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:12:19.827] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:12:19.829] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=63.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:1184 [2026-08-19 08:12:19.881] [DEBUG] QUERY OK source="tms_terminals" db=51.2ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:12:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:12:19.882] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.4ms idle=52.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:12:19.937] [DEBUG] QUERY OK db=54.6ms idle=1.9ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["4d213f3a-8e17-4b94-bcdc-1ea11450de68", 33, "2026-08-19T08:12:19Z", ~N[2026-08-19 08:12:19], ~N[2026-08-19 08:12:19]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:12:19.941] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73206, oid: "4d213f3a-8e17-4b94-bcdc-1ea11450de68", upload_time: "2026-08-19T08:12:19Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:19], updated_at: ~N[2026-08-19 08:12:19]} [2026-08-19 08:12:19.941] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:12:19Z", "value" => "morefun"} [2026-08-19 08:12:19.978] [DEBUG] QUERY OK db=36.2ms idle=58.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "morefun", "vendor", 73206, ~N[2026-08-19 08:12:19], ~N[2026-08-19 08:12:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:19.982] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736960, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:19], updated_at: ~N[2026-08-19 08:12:19]}} [2026-08-19 08:12:19.982] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:12:19Z", "value" => "kiosk_launcher"} [2026-08-19 08:12:20.035] [DEBUG] QUERY OK db=52.0ms queue=0.2ms idle=45.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "kiosk_launcher", "model", 73206, ~N[2026-08-19 08:12:19], ~N[2026-08-19 08:12:19]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.037] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736964, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:19], updated_at: ~N[2026-08-19 08:12:19]}} [2026-08-19 08:12:20.037] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:12:19Z", "value" => "1.0"} [2026-08-19 08:12:20.104] [DEBUG] QUERY OK db=65.0ms queue=0.3ms idle=61.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "1.0", "app_version", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.107] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736968, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.107] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:12:19Z", "value" => "13"} [2026-08-19 08:12:20.159] [DEBUG] QUERY OK db=50.3ms idle=72.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "13", "android_version", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.165] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736972, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.165] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:12:19Z", "value" => "1033"} [2026-08-19 08:12:20.231] [DEBUG] QUERY OK db=65.5ms idle=60.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "1033", "ram_free_mb", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736976, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.237] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:12:19Z", "value" => "WIFI"} [2026-08-19 08:12:20.284] [DEBUG] QUERY OK db=46.6ms idle=18.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "WIFI", "network_type", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.290] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736980, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.290] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:12:19Z", "value" => "true"} [2026-08-19 08:12:20.341] [DEBUG] QUERY OK db=50.6ms queue=0.1ms idle=59.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "true", "kiosk_active", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.347] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736983, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.347] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:12:19Z", "value" => ""} [2026-08-19 08:12:20.464] [DEBUG] QUERY OK db=116.4ms idle=64.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:12:19Z", "sim_operator", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.467] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736988, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.467] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"} [2026-08-19 08:12:20.530] [DEBUG] QUERY OK db=61.2ms queue=0.4ms idle=126.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "UNKNOWN", "sim_number", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.535] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736993, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.535] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"} [2026-08-19 08:12:20.583] [DEBUG] QUERY OK db=46.5ms idle=71.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "UNKNOWN", "sim_iccid", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.588] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 736997, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.588] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"} [2026-08-19 08:12:20.630] [DEBUG] QUERY OK db=39.6ms queue=0.4ms idle=59.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "UNKNOWN", "sim_imsi", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.632] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737001, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.632] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"} [2026-08-19 08:12:20.701] [DEBUG] QUERY OK db=66.4ms queue=1.3ms idle=50.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "UNKNOWN", "sim_iccid2", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.705] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737005, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.705] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:12:19Z", "value" => "UNKNOWN"} [2026-08-19 08:12:20.759] [DEBUG] QUERY OK db=53.3ms idle=75.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "UNKNOWN", "sim_imsi2", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.765] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737009, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.765] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:12:19Z", "value" => "6"} [2026-08-19 08:12:20.834] [DEBUG] QUERY OK db=66.8ms queue=1.5ms idle=64.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "6", "data_usage_mb", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.837] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737013, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.838] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:12:19Z", "value" => "0"} [2026-08-19 08:12:20.902] [DEBUG] QUERY OK db=63.9ms queue=0.1ms idle=79.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "0", "mobile_data_mb", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.906] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737017, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:20.908] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:12:19Z", "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), 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), Scanne" <> ...} [2026-08-19 08:12:20.959] [DEBUG] QUERY OK db=49.6ms idle=75.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:19Z", "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), 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), Scanne" <> ..., "installed_apps", 73206, ~N[2026-08-19 08:12:20], ~N[2026-08-19 08:12:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:20.962] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737020, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:12:19Z", message: nil, status_log_id: 73206, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:20], updated_at: ~N[2026-08-19 08:12:20]}} [2026-08-19 08:12:50.100] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:12:50.100] [INFO ] Incoming JSON payload: {"oid":"a21e4813-dd00-4486-9aaf-f39269971c29","sn":"98251226730001","uploadTime":"2026-08-19T08:12:49Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:12:49Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:12:49Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:12:50.101] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "a21e4813-dd00-4486-9aaf-f39269971c29", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:12:49Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:12:49Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:12:49Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:12:49Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:12:49Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:12:49Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:12:49Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:12:49Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:12:49Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:12:49Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:12:49Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:12:49Z", "vendor" => "morefun"} [2026-08-19 08:12:50.101] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:12:50.101] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:12:50.101] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:12:50.110] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=798.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-08-19 08:12:50.110] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=308.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-08-19 08:12:50.110] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:12:50.112] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:12:50.112] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:12:50.156] [DEBUG] QUERY OK source="tms_terminals" db=43.7ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:12:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:12:50.156] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:12:50.159] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms decode=0.1ms idle=44.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:1184 [2026-08-19 08:12:50.193] [DEBUG] QUERY OK source="tms_terminals" db=32.6ms idle=3.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:12:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:12:50.195] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.8ms queue=0.2ms idle=34.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:12:50.274] [DEBUG] QUERY OK db=77.9ms idle=2.9ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["a21e4813-dd00-4486-9aaf-f39269971c29", 33, "2026-08-19T08:12:49Z", ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:12:50.280] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73210, oid: "a21e4813-dd00-4486-9aaf-f39269971c29", upload_time: "2026-08-19T08:12:49Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]} [2026-08-19 08:12:50.280] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:12:49Z", "value" => "morefun"} [2026-08-19 08:12:50.344] [DEBUG] QUERY OK db=61.5ms idle=87.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "morefun", "vendor", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.347] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737024, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.347] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:12:49Z", "value" => "kiosk_launcher"} [2026-08-19 08:12:50.421] [DEBUG] QUERY OK db=74.1ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "kiosk_launcher", "model", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.428] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737028, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.429] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:12:49Z", "value" => "1.0"} [2026-08-19 08:12:50.466] [DEBUG] QUERY OK db=34.2ms idle=86.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "1.0", "app_version", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.471] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737034, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.471] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:12:49Z", "value" => "13"} [2026-08-19 08:12:50.529] [DEBUG] QUERY OK db=57.8ms idle=50.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "13", "android_version", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.536] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737038, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.536] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:12:49Z", "value" => "1033"} [2026-08-19 08:12:50.578] [DEBUG] QUERY OK db=41.7ms idle=70.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "1033", "ram_free_mb", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.580] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737042, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.580] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:12:49Z", "value" => "WIFI"} [2026-08-19 08:12:50.627] [DEBUG] QUERY OK db=46.5ms idle=51.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "WIFI", "network_type", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.635] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737045, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.635] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:12:49Z", "value" => "true"} [2026-08-19 08:12:50.662] [DEBUG] QUERY OK db=26.3ms queue=0.1ms idle=57.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "true", "kiosk_active", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.668] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737050, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.669] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:12:49Z", "value" => ""} [2026-08-19 08:12:50.781] [DEBUG] QUERY OK db=110.8ms idle=42.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:12:49Z", "sim_operator", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.794] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737054, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.794] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"} [2026-08-19 08:12:50.902] [DEBUG] QUERY OK db=107.6ms queue=0.1ms idle=132.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "UNKNOWN", "sim_number", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:50.908] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737058, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:50.908] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"} [2026-08-19 08:12:51.029] [DEBUG] QUERY OK db=119.6ms queue=0.1ms idle=128.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "UNKNOWN", "sim_iccid", 73210, ~N[2026-08-19 08:12:50], ~N[2026-08-19 08:12:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.034] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737061, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:50], updated_at: ~N[2026-08-19 08:12:50]}} [2026-08-19 08:12:51.034] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"} [2026-08-19 08:12:51.123] [DEBUG] QUERY OK db=86.4ms idle=133.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "UNKNOWN", "sim_imsi", 73210, ~N[2026-08-19 08:12:51], ~N[2026-08-19 08:12:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.126] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737065, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:51], updated_at: ~N[2026-08-19 08:12:51]}} [2026-08-19 08:12:51.126] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"} [2026-08-19 08:12:51.209] [DEBUG] QUERY OK db=82.3ms idle=97.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "UNKNOWN", "sim_iccid2", 73210, ~N[2026-08-19 08:12:51], ~N[2026-08-19 08:12:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.216] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737068, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:51], updated_at: ~N[2026-08-19 08:12:51]}} [2026-08-19 08:12:51.216] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:12:49Z", "value" => "UNKNOWN"} [2026-08-19 08:12:51.304] [DEBUG] QUERY OK db=87.6ms idle=93.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "UNKNOWN", "sim_imsi2", 73210, ~N[2026-08-19 08:12:51], ~N[2026-08-19 08:12:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.329] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737073, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:51], updated_at: ~N[2026-08-19 08:12:51]}} [2026-08-19 08:12:51.329] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:12:49Z", "value" => "6"} [2026-08-19 08:12:51.402] [DEBUG] QUERY OK db=66.9ms queue=2.2ms idle=28.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "6", "data_usage_mb", 73210, ~N[2026-08-19 08:12:51], ~N[2026-08-19 08:12:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.405] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737077, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:51], updated_at: ~N[2026-08-19 08:12:51]}} [2026-08-19 08:12:51.405] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:12:49Z", "value" => "0"} [2026-08-19 08:12:51.483] [DEBUG] QUERY OK db=77.2ms idle=78.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "0", "mobile_data_mb", 73210, ~N[2026-08-19 08:12:51], ~N[2026-08-19 08:12:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.487] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737081, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:51], updated_at: ~N[2026-08-19 08:12:51]}} [2026-08-19 08:12:51.489] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:12:49Z", "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), 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), Scanne" <> ...} [2026-08-19 08:12:51.550] [DEBUG] QUERY OK db=60.8ms idle=87.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:12:49Z", "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), 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), Scanne" <> ..., "installed_apps", 73210, ~N[2026-08-19 08:12:51], ~N[2026-08-19 08:12:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:12:51.556] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737084, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:12:49Z", message: nil, status_log_id: 73210, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:12:51], updated_at: ~N[2026-08-19 08:12:51]}} [2026-08-19 08:12:58.074] [INFO ] Running offline device check... [2026-08-19 08:12:58.074] [INFO ] Starting offline device check... [2026-08-19 08:12:58.080] [DEBUG] QUERY OK source="tms_terminals" db=6.2ms idle=999.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:1234 [2026-08-19 08:12:58.089] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=734.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:12:58.095] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms 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:1249 [2026-08-19 08:12:58.096] [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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.097] [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:1249 [2026-08-19 08:12:58.098] [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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.099] [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:1249 [2026-08-19 08:12:58.100] [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:1249 [2026-08-19 08:12:58.101] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.102] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.103] [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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.108] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.122] [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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms 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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.129] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.130] [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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.131] [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:1249 [2026-08-19 08:12:58.152] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=21.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:12:58.156] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.159] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.161] [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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.161] [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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=32.5ms queue=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 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=34.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:12:58.197] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.206] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.207] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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:1249 [2026-08-19 08:12:58.210] [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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.211] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms 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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.212] [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:1249 [2026-08-19 08:12:58.216] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms 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:1249 [2026-08-19 08:12:58.218] [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 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.220] [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 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.220] [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 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.222] [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:1249 [2026-08-19 08:12:58.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.225] [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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.226] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.227] [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 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.228] [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 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.230] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.231] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.233] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.234] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.235] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.236] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.237] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.238] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.239] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.240] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:12:58.240] [INFO ] Offline device check completed. Found 47 offline devices, updated 0 statuses. [2026-08-19 08:12:58.240] [INFO ] Offline device check completed successfully [2026-08-19 08:13:20.217] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:13:20.217] [INFO ] Incoming JSON payload: {"oid":"db543986-3160-4181-8f7f-be18625bbd1c","sn":"98251226730001","uploadTime":"2026-08-19T08:13:20Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"ram_free_mb","value":"1034","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:13:20Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:13:20Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:13:20.221] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "db543986-3160-4181-8f7f-be18625bbd1c", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:13:20Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:13:20Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:13:20Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:13:20Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:13:20Z", "value" => "1034"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:13:20Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:13:20Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:13:20Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:13:20Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:13:20Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:13:20Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:13:20Z", "vendor" => "morefun"} [2026-08-19 08:13:20.222] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:13:20.222] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:13:20.223] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:13:20.224] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.2ms idle=720.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-08-19 08:13:20.225] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.2ms idle=419.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-08-19 08:13:20.225] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:13:20.228] [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:140 [2026-08-19 08:13:20.228] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:13:20.271] [DEBUG] QUERY OK source="tms_terminals" db=41.1ms idle=5.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:13:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:13:20.272] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:13:20.277] [DEBUG] QUERY OK source="tms_terminals" db=4.2ms idle=44.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:1184 [2026-08-19 08:13:20.314] [DEBUG] QUERY OK source="tms_terminals" db=35.5ms idle=7.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:13:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:13:20.315] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms queue=0.1ms idle=37.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:13:20.393] [DEBUG] QUERY OK db=77.4ms idle=1.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["db543986-3160-4181-8f7f-be18625bbd1c", 33, "2026-08-19T08:13:20Z", ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:13:20.399] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73213, oid: "db543986-3160-4181-8f7f-be18625bbd1c", upload_time: "2026-08-19T08:13:20Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]} [2026-08-19 08:13:20.399] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:13:20Z", "value" => "morefun"} [2026-08-19 08:13:20.504] [DEBUG] QUERY OK db=102.8ms queue=1.4ms idle=84.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "morefun", "vendor", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.511] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737088, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.511] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:13:20Z", "value" => "kiosk_launcher"} [2026-08-19 08:13:20.633] [DEBUG] QUERY OK db=120.8ms idle=8.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "kiosk_launcher", "model", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.638] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737092, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.638] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:13:20Z", "value" => "1.0"} [2026-08-19 08:13:20.706] [DEBUG] QUERY OK db=67.3ms queue=0.2ms idle=127.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "1.0", "app_version", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.707] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737096, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.708] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:13:20Z", "value" => "13"} [2026-08-19 08:13:20.747] [DEBUG] QUERY OK db=39.4ms idle=75.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "13", "android_version", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.751] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737100, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.751] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:13:20Z", "value" => "1034"} [2026-08-19 08:13:20.803] [DEBUG] QUERY OK db=49.3ms queue=1.2ms idle=46.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "1034", "ram_free_mb", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.807] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737104, itemkey: "ram_free_mb", value: "1034", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.807] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:13:20Z", "value" => "WIFI"} [2026-08-19 08:13:20.848] [DEBUG] QUERY OK db=39.4ms idle=59.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "WIFI", "network_type", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.853] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737108, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.854] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:13:20Z", "value" => "true"} [2026-08-19 08:13:20.890] [DEBUG] QUERY OK db=35.4ms idle=51.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "true", "kiosk_active", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.893] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737112, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.893] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:13:20Z", "value" => ""} [2026-08-19 08:13:20.949] [DEBUG] QUERY OK db=55.5ms idle=46.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:13:20Z", "sim_operator", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:20.954] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737116, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:20.955] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"} [2026-08-19 08:13:21.004] [DEBUG] QUERY OK db=46.6ms idle=66.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "UNKNOWN", "sim_number", 73213, ~N[2026-08-19 08:13:20], ~N[2026-08-19 08:13:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.010] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737120, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:20], updated_at: ~N[2026-08-19 08:13:20]}} [2026-08-19 08:13:21.011] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"} [2026-08-19 08:13:21.056] [DEBUG] QUERY OK db=43.7ms queue=0.8ms idle=62.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "UNKNOWN", "sim_iccid", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.059] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737124, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:21.059] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"} [2026-08-19 08:13:21.120] [DEBUG] QUERY OK db=58.8ms queue=0.4ms idle=57.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "UNKNOWN", "sim_imsi", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.126] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737128, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:21.126] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"} [2026-08-19 08:13:21.199] [DEBUG] QUERY OK db=67.8ms queue=2.5ms idle=72.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "UNKNOWN", "sim_iccid2", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.200] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737132, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:21.200] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:13:20Z", "value" => "UNKNOWN"} [2026-08-19 08:13:21.257] [DEBUG] QUERY OK db=56.4ms idle=80.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "UNKNOWN", "sim_imsi2", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.263] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737136, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:21.263] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:13:20Z", "value" => "6"} [2026-08-19 08:13:21.340] [DEBUG] QUERY OK db=76.8ms idle=64.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "6", "data_usage_mb", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.350] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737141, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:21.350] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:13:20Z", "value" => "0"} [2026-08-19 08:13:21.414] [DEBUG] QUERY OK db=61.3ms queue=2.6ms idle=93.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "0", "mobile_data_mb", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.420] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737145, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:21.421] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:13:20Z", "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), 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), Scanne" <> ...} [2026-08-19 08:13:21.504] [DEBUG] QUERY OK db=70.2ms idle=93.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:20Z", "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), 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), Scanne" <> ..., "installed_apps", 73213, ~N[2026-08-19 08:13:21], ~N[2026-08-19 08:13:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:21.515] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737148, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:13:20Z", message: nil, status_log_id: 73213, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:21], updated_at: ~N[2026-08-19 08:13:21]}} [2026-08-19 08:13:50.335] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:13:50.335] [INFO ] Incoming JSON payload: {"oid":"bfca0e45-58f0-4f8d-a8b3-985f25425c71","sn":"98251226730001","uploadTime":"2026-08-19T08:13:50Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"ram_free_mb","value":"1030","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:13:50Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:13:50Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:13:50.343] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "bfca0e45-58f0-4f8d-a8b3-985f25425c71", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:13:50Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:13:50Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:13:50Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:13:50Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:13:50Z", "value" => "1030"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:13:50Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:13:50Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:13:50Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:13:50Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:13:50Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:13:50Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:13:50Z", "vendor" => "morefun"} [2026-08-19 08:13:50.343] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:13:50.343] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:13:50.346] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:13:50.348] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms queue=1.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.`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-08-19 08:13:50.351] [DEBUG] QUERY OK source="parameter_templates" db=2.1ms idle=542.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-08-19 08:13:50.351] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:13:50.355] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms 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:140 [2026-08-19 08:13:50.356] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:13:50.432] [DEBUG] QUERY OK source="tms_terminals" db=76.2ms idle=4.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:13:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:13:50.432] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:13:50.435] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=78.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:1184 [2026-08-19 08:13:50.472] [DEBUG] QUERY OK source="tms_terminals" db=36.0ms decode=0.1ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:13:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:13:50.477] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms queue=1.4ms idle=40.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:13:50.532] [DEBUG] QUERY OK db=55.1ms idle=5.2ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["bfca0e45-58f0-4f8d-a8b3-985f25425c71", 33, "2026-08-19T08:13:50Z", ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:13:50.536] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73219, oid: "bfca0e45-58f0-4f8d-a8b3-985f25425c71", upload_time: "2026-08-19T08:13:50Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]} [2026-08-19 08:13:50.536] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:13:50Z", "value" => "morefun"} [2026-08-19 08:13:50.609] [DEBUG] QUERY OK db=72.1ms queue=0.5ms idle=59.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "morefun", "vendor", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:50.611] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737151, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:50.611] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:13:50Z", "value" => "kiosk_launcher"} [2026-08-19 08:13:50.690] [DEBUG] QUERY OK db=77.8ms idle=5.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "kiosk_launcher", "model", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:50.692] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737156, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:50.692] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:13:50Z", "value" => "1.0"} [2026-08-19 08:13:50.762] [DEBUG] QUERY OK db=68.5ms decode=1.3ms idle=83.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "1.0", "app_version", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:50.768] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737160, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:50.768] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:13:50Z", "value" => "13"} [2026-08-19 08:13:50.832] [DEBUG] QUERY OK db=62.7ms idle=79.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "13", "android_version", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:50.837] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737166, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:50.838] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:13:50Z", "value" => "1030"} [2026-08-19 08:13:50.899] [DEBUG] QUERY OK db=60.3ms idle=78.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "1030", "ram_free_mb", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:50.902] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737170, itemkey: "ram_free_mb", value: "1030", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:50.902] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:13:50Z", "value" => "WIFI"} [2026-08-19 08:13:50.996] [DEBUG] QUERY OK db=93.7ms idle=70.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "WIFI", "network_type", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:50.997] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737174, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:50.997] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:13:50Z", "value" => "true"} [2026-08-19 08:13:51.029] [DEBUG] QUERY OK db=31.0ms queue=0.4ms idle=98.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "true", "kiosk_active", 73219, ~N[2026-08-19 08:13:50], ~N[2026-08-19 08:13:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.031] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737176, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:50], updated_at: ~N[2026-08-19 08:13:50]}} [2026-08-19 08:13:51.031] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:13:50Z", "value" => ""} [2026-08-19 08:13:51.085] [DEBUG] QUERY OK db=53.3ms idle=35.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:13:50Z", "sim_operator", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.087] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737180, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.087] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"} [2026-08-19 08:13:51.153] [DEBUG] QUERY OK db=65.8ms idle=58.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "UNKNOWN", "sim_number", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.155] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737184, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.155] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"} [2026-08-19 08:13:51.195] [DEBUG] QUERY OK db=39.1ms idle=71.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "UNKNOWN", "sim_iccid", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.196] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737188, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.197] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"} [2026-08-19 08:13:51.263] [DEBUG] QUERY OK db=65.5ms idle=43.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "UNKNOWN", "sim_imsi", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.264] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737192, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.264] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"} [2026-08-19 08:13:51.305] [DEBUG] QUERY OK db=41.0ms idle=69.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "UNKNOWN", "sim_iccid2", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.308] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737196, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.308] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:13:50Z", "value" => "UNKNOWN"} [2026-08-19 08:13:51.372] [DEBUG] QUERY OK db=63.8ms idle=45.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "UNKNOWN", "sim_imsi2", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.375] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737200, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.376] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:13:50Z", "value" => "6"} [2026-08-19 08:13:51.445] [DEBUG] QUERY OK db=69.0ms idle=70.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "6", "data_usage_mb", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.448] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737204, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.449] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:13:50Z", "value" => "0"} [2026-08-19 08:13:51.630] [DEBUG] QUERY OK db=180.5ms idle=77.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "0", "mobile_data_mb", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.632] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737208, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:13:51.634] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:13:50Z", "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), 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), Scanne" <> ...} [2026-08-19 08:13:51.765] [DEBUG] QUERY OK db=130.3ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:13:50Z", "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), 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), Scanne" <> ..., "installed_apps", 73219, ~N[2026-08-19 08:13:51], ~N[2026-08-19 08:13:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:13:51.767] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737212, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:13:50Z", message: nil, status_log_id: 73219, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:13:51], updated_at: ~N[2026-08-19 08:13:51]}} [2026-08-19 08:14:03.211] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:14:03.211] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"-2760574-04-19T09:37:13Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-2760574-04-19T09:37:13Z","message":"Device Connected"}]} [2026-08-19 08:14:03.212] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-2760574-04-19T09:37:13Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "-2760574-04-19T09:37:13Z", "vendor" => "MoreFun"} [2026-08-19 08:14:03.212] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:14:03.212] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:14:03.212] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:14:03.217] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms idle=576.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:14:03.220] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=410.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:14:03.233] [DEBUG] QUERY OK source="parameter_template_values" db=12.7ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:14:03.306] [DEBUG] QUERY OK db=72.7ms idle=13.8ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 5986, ~U[2026-08-19 08:14:03Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:14:03], ~N[2026-08-19 08:14:03]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:14:03.310] [INFO ] AutoPushService: Created push log 45768 for parameters (template: 7) [2026-08-19 08:14:03.310] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 5986, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:14:03.310] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:14:03.310] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:14:03.394] [DEBUG] QUERY OK db=79.7ms queue=1.7ms idle=80.0ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 6050, ~U[2026-08-19 08:14:03Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:14:03], ~N[2026-08-19 08:14:03]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:14:03.395] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:14:03.396] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 6050, "retry_count" => "3"} [2026-08-19 08:14:03.396] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:14:03.396] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:14:03.398] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms queue=0.1ms idle=90.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:14:03.398] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:14:03.404] [DEBUG] QUERY OK source="tms_terminals" db=5.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:14:03.404] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:14:03.425] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:14:03.425] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:14:03.425] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:14:03.482] [DEBUG] QUERY OK db=45.5ms queue=5.6ms idle=32.6ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 6082, ~U[2026-08-19 08:14:03Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:14:03], ~N[2026-08-19 08:14:03]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:14:03.482] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:14:03.483] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 6082, "retry_count" => "3"} [2026-08-19 08:14:03.483] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:14:03.483] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:14:03.491] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:14:03.494] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms idle=86.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:14:03.494] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:14:03.547] [DEBUG] QUERY OK source="tms_terminals" db=52.6ms idle=12.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:14:03], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:14:03.547] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:14:03.548] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=53.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:14:03.603] [DEBUG] QUERY OK source="tms_terminals" db=52.9ms queue=0.1ms idle=2.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:14:03], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:14:03.605] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms queue=0.1ms idle=55.3ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:14:03.658] [DEBUG] QUERY OK db=53.4ms idle=1.6ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "-2760574-04-19T09:37:13Z", ~N[2026-08-19 08:14:03], ~N[2026-08-19 08:14:03]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:14:03.663] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73220, oid: "org-id-placeholder", upload_time: "-2760574-04-19T09:37:13Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:03], updated_at: ~N[2026-08-19 08:14:03]} [2026-08-19 08:14:03.663] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-2760574-04-19T09:37:13Z", "value" => "online"} [2026-08-19 08:14:03.701] [DEBUG] QUERY OK db=33.5ms queue=3.3ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-2760574-04-19T09:37:13Z", "online", "status", 73220, ~N[2026-08-19 08:14:03], ~N[2026-08-19 08:14:03]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:03.705] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737213, itemkey: "status", value: "online", timestamp: "-2760574-04-19T09:37:13Z", message: "Device Connected", status_log_id: 73220, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:03], updated_at: ~N[2026-08-19 08:14:03]}} [2026-08-19 08:14:03.706] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:14:03.707] [WARN ] Unexpected async result [2026-08-19 08:14:03.708] [WARN ] Unexpected async result [2026-08-19 08:14:03.708] [WARN ] Unexpected async result [2026-08-19 08:14:20.431] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:14:20.431] [INFO ] Incoming JSON payload: {"oid":"2cfd11c1-8e8e-4cb6-9c97-f9d7c31a8d51","sn":"98251226730001","uploadTime":"2026-08-19T08:14:20Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"ram_free_mb","value":"1028","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:14:20Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:14:20Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:14:20.433] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "2cfd11c1-8e8e-4cb6-9c97-f9d7c31a8d51", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:14:20Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:14:20Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:14:20Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:14:20Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:14:20Z", "value" => "1028"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:14:20Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:14:20Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:14:20Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:14:20Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:14:20Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:14:20Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:14:20Z", "vendor" => "morefun"} [2026-08-19 08:14:20.433] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:14:20.433] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:14:20.433] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:14:20.436] [DEBUG] QUERY OK source="parameter_templates" db=3.2ms idle=740.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-08-19 08:14:20.442] [DEBUG] QUERY OK source="parameter_templates" db=4.7ms idle=624.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-08-19 08:14:20.442] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:14:20.444] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms 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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:14:20.444] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:14:20.475] [DEBUG] QUERY OK source="tms_terminals" db=31.2ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:14:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:14:20.476] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:14:20.480] [DEBUG] QUERY OK source="tms_terminals" db=4.0ms idle=32.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:1184 [2026-08-19 08:14:20.525] [DEBUG] QUERY OK source="tms_terminals" db=44.6ms decode=0.2ms idle=4.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:14:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:14:20.528] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.7ms idle=46.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:14:20.608] [DEBUG] QUERY OK db=79.1ms idle=3.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2cfd11c1-8e8e-4cb6-9c97-f9d7c31a8d51", 33, "2026-08-19T08:14:20Z", ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:14:20.611] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73225, oid: "2cfd11c1-8e8e-4cb6-9c97-f9d7c31a8d51", upload_time: "2026-08-19T08:14:20Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]} [2026-08-19 08:14:20.611] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:14:20Z", "value" => "morefun"} [2026-08-19 08:14:20.710] [DEBUG] QUERY OK db=98.8ms idle=83.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "morefun", "vendor", 73225, ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:20.719] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737220, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]}} [2026-08-19 08:14:20.719] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:14:20Z", "value" => "kiosk_launcher"} [2026-08-19 08:14:20.791] [DEBUG] QUERY OK db=71.1ms idle=23.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "kiosk_launcher", "model", 73225, ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:20.795] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737224, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]}} [2026-08-19 08:14:20.796] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:14:20Z", "value" => "1.0"} [2026-08-19 08:14:20.834] [DEBUG] QUERY OK db=35.8ms idle=88.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "1.0", "app_version", 73225, ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:20.836] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737228, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]}} [2026-08-19 08:14:20.836] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:14:20Z", "value" => "13"} [2026-08-19 08:14:20.900] [DEBUG] QUERY OK db=61.9ms queue=1.0ms idle=46.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "13", "android_version", 73225, ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:20.906] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737231, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]}} [2026-08-19 08:14:20.906] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:14:20Z", "value" => "1028"} [2026-08-19 08:14:20.963] [DEBUG] QUERY OK db=56.9ms idle=71.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "1028", "ram_free_mb", 73225, ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:20.966] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737236, itemkey: "ram_free_mb", value: "1028", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]}} [2026-08-19 08:14:20.966] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:14:20Z", "value" => "WIFI"} [2026-08-19 08:14:21.020] [DEBUG] QUERY OK db=53.4ms idle=66.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "WIFI", "network_type", 73225, ~N[2026-08-19 08:14:20], ~N[2026-08-19 08:14:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.028] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737240, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:20], updated_at: ~N[2026-08-19 08:14:20]}} [2026-08-19 08:14:21.029] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:14:20Z", "value" => "true"} [2026-08-19 08:14:21.084] [DEBUG] QUERY OK db=55.0ms idle=65.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "true", "kiosk_active", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.086] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737244, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.086] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:14:20Z", "value" => ""} [2026-08-19 08:14:21.155] [DEBUG] QUERY OK db=68.9ms idle=66.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:14:20Z", "sim_operator", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.158] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737246, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.158] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"} [2026-08-19 08:14:21.228] [DEBUG] QUERY OK db=69.0ms idle=74.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "UNKNOWN", "sim_number", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.233] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737252, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.233] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"} [2026-08-19 08:14:21.323] [DEBUG] QUERY OK db=89.7ms idle=77.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "UNKNOWN", "sim_iccid", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.326] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737256, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.326] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"} [2026-08-19 08:14:21.421] [DEBUG] QUERY OK db=92.9ms queue=1.2ms idle=98.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "UNKNOWN", "sim_imsi", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.425] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737260, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.425] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"} [2026-08-19 08:14:21.473] [DEBUG] QUERY OK db=47.6ms idle=102.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "UNKNOWN", "sim_iccid2", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.483] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737263, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.484] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:14:20Z", "value" => "UNKNOWN"} [2026-08-19 08:14:21.559] [DEBUG] QUERY OK db=75.0ms queue=0.1ms idle=63.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "UNKNOWN", "sim_imsi2", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.564] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737269, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.564] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:14:20Z", "value" => "6"} [2026-08-19 08:14:21.629] [DEBUG] QUERY OK db=64.5ms idle=91.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "6", "data_usage_mb", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.634] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737273, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.637] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:14:20Z", "value" => "0"} [2026-08-19 08:14:21.838] [DEBUG] QUERY OK db=198.3ms idle=80.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "0", "mobile_data_mb", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.843] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737276, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:21.846] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:14:20Z", "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), 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), Scanne" <> ...} [2026-08-19 08:14:21.918] [DEBUG] QUERY OK db=64.8ms queue=0.2ms idle=147.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:20Z", "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), 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), Scanne" <> ..., "installed_apps", 73225, ~N[2026-08-19 08:14:21], ~N[2026-08-19 08:14:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:21.923] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737280, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:14:20Z", message: nil, status_log_id: 73225, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:21], updated_at: ~N[2026-08-19 08:14:21]}} [2026-08-19 08:14:50.705] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:14:50.705] [INFO ] Incoming JSON payload: {"oid":"94de78e5-7a3d-430f-856a-23fae2ad2576","sn":"98251226730001","uploadTime":"2026-08-19T08:14:50Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"ram_free_mb","value":"1034","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:14:50Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:14:50Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:14:50.713] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "94de78e5-7a3d-430f-856a-23fae2ad2576", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:14:50Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:14:50Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:14:50Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:14:50Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:14:50Z", "value" => "1034"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:14:50Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:14:50Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:14:50Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:14:50Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:14:50Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:14:50Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:14:50Z", "vendor" => "morefun"} [2026-08-19 08:14:50.713] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:14:50.713] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:14:50.713] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:14:50.715] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=1901.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-08-19 08:14:50.719] [DEBUG] QUERY OK source="parameter_templates" db=3.4ms idle=930.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-08-19 08:14:50.720] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:14:50.721] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms 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:140 [2026-08-19 08:14:50.721] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:14:50.743] [DEBUG] QUERY OK source="tms_terminals" db=20.9ms idle=3.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:14:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:14:50.743] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:14:50.748] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms queue=2.8ms 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` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:14:50.777] [DEBUG] QUERY OK source="tms_terminals" db=28.3ms idle=5.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:14:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:14:50.780] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=3.2ms idle=29.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:14:50.835] [DEBUG] QUERY OK db=53.4ms queue=0.4ms idle=5.0ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["94de78e5-7a3d-430f-856a-23fae2ad2576", 33, "2026-08-19T08:14:50Z", ~N[2026-08-19 08:14:50], ~N[2026-08-19 08:14:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:14:50.840] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73229, oid: "94de78e5-7a3d-430f-856a-23fae2ad2576", upload_time: "2026-08-19T08:14:50Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:50], updated_at: ~N[2026-08-19 08:14:50]} [2026-08-19 08:14:50.840] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:14:50Z", "value" => "morefun"} [2026-08-19 08:14:50.875] [DEBUG] QUERY OK db=34.3ms idle=53.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "morefun", "vendor", 73229, ~N[2026-08-19 08:14:50], ~N[2026-08-19 08:14:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:50.878] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737281, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:50], updated_at: ~N[2026-08-19 08:14:50]}} [2026-08-19 08:14:50.879] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:14:50Z", "value" => "kiosk_launcher"} [2026-08-19 08:14:50.946] [DEBUG] QUERY OK db=66.2ms idle=44.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "kiosk_launcher", "model", 73229, ~N[2026-08-19 08:14:50], ~N[2026-08-19 08:14:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:50.950] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737284, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:50], updated_at: ~N[2026-08-19 08:14:50]}} [2026-08-19 08:14:50.950] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:14:50Z", "value" => "1.0"} [2026-08-19 08:14:51.010] [DEBUG] QUERY OK db=58.8ms idle=75.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "1.0", "app_version", 73229, ~N[2026-08-19 08:14:50], ~N[2026-08-19 08:14:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.017] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737289, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:50], updated_at: ~N[2026-08-19 08:14:50]}} [2026-08-19 08:14:51.017] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:14:50Z", "value" => "13"} [2026-08-19 08:14:51.130] [DEBUG] QUERY OK db=111.8ms idle=71.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "13", "android_version", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.133] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737293, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.133] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:14:50Z", "value" => "1034"} [2026-08-19 08:14:51.195] [DEBUG] QUERY OK db=60.0ms idle=125.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "1034", "ram_free_mb", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.198] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737297, itemkey: "ram_free_mb", value: "1034", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.198] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:14:50Z", "value" => "WIFI"} [2026-08-19 08:14:51.260] [DEBUG] QUERY OK db=61.7ms idle=68.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "WIFI", "network_type", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.267] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737301, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.267] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:14:50Z", "value" => "true"} [2026-08-19 08:14:51.315] [DEBUG] QUERY OK db=46.9ms idle=73.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "true", "kiosk_active", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737305, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.321] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:14:50Z", "value" => ""} [2026-08-19 08:14:51.371] [DEBUG] QUERY OK db=49.5ms idle=61.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:14:50Z", "sim_operator", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.376] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737309, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.377] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"} [2026-08-19 08:14:51.484] [DEBUG] QUERY OK db=105.9ms idle=63.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "UNKNOWN", "sim_number", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.488] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737313, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.488] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"} [2026-08-19 08:14:51.532] [DEBUG] QUERY OK db=43.4ms idle=117.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "UNKNOWN", "sim_iccid", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.542] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737317, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.542] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"} [2026-08-19 08:14:51.609] [DEBUG] QUERY OK db=62.3ms queue=3.6ms idle=58.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "UNKNOWN", "sim_imsi", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.618] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737324, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.619] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"} [2026-08-19 08:14:51.657] [DEBUG] QUERY OK db=35.1ms queue=0.6ms idle=89.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "UNKNOWN", "sim_iccid2", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.660] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737328, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.661] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:14:50Z", "value" => "UNKNOWN"} [2026-08-19 08:14:51.725] [DEBUG] QUERY OK db=59.2ms queue=5.0ms idle=51.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "UNKNOWN", "sim_imsi2", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.735] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737331, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.735] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:14:50Z", "value" => "6"} [2026-08-19 08:14:51.771] [DEBUG] QUERY OK db=35.4ms idle=78.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "6", "data_usage_mb", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737335, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.779] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:14:50Z", "value" => "0"} [2026-08-19 08:14:51.817] [DEBUG] QUERY OK db=37.6ms idle=53.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "0", "mobile_data_mb", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.825] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737338, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:14:51.826] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:14:50Z", "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), 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), Scanne" <> ...} [2026-08-19 08:14:51.907] [DEBUG] QUERY OK db=69.3ms idle=42.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:14:50Z", "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), 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), Scanne" <> ..., "installed_apps", 73229, ~N[2026-08-19 08:14:51], ~N[2026-08-19 08:14:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:14:51.920] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737342, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:14:50Z", message: nil, status_log_id: 73229, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:14:51], updated_at: ~N[2026-08-19 08:14:51]}} [2026-08-19 08:15:20.655] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:15:20.655] [INFO ] Incoming JSON payload: {"oid":"0873099d-aae1-4ca9-a200-b4f67219cb77","sn":"98251226730001","uploadTime":"2026-08-19T08:15:20Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:15:20Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:15:20Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:15:20.659] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "0873099d-aae1-4ca9-a200-b4f67219cb77", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:15:20Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:15:20Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:15:20Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:15:20Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:15:20Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:15:20Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:15:20Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:15:20Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:15:20Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:15:20Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:15:20Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:15:20Z", "vendor" => "morefun"} [2026-08-19 08:15:20.661] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:15:20.661] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:15:20.661] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:15:20.665] [DEBUG] QUERY OK source="parameter_templates" db=3.8ms idle=842.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-08-19 08:15:20.668] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms queue=0.3ms idle=777.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-08-19 08:15:20.668] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:15:20.673] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms 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:140 [2026-08-19 08:15:20.673] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:15:20.711] [DEBUG] QUERY OK source="tms_terminals" db=37.7ms idle=5.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:15:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:15:20.711] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:15:20.717] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms idle=38.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:1184 [2026-08-19 08:15:20.757] [DEBUG] QUERY OK source="tms_terminals" db=39.6ms idle=6.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:15:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:15:20.760] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.0ms queue=0.4ms idle=41.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:15:20.804] [DEBUG] QUERY OK db=42.6ms queue=0.3ms idle=3.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["0873099d-aae1-4ca9-a200-b4f67219cb77", 33, "2026-08-19T08:15:20Z", ~N[2026-08-19 08:15:20], ~N[2026-08-19 08:15:20]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:15:20.806] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73234, oid: "0873099d-aae1-4ca9-a200-b4f67219cb77", upload_time: "2026-08-19T08:15:20Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:20], updated_at: ~N[2026-08-19 08:15:20]} [2026-08-19 08:15:20.806] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:15:20Z", "value" => "morefun"} [2026-08-19 08:15:20.877] [DEBUG] QUERY OK db=69.5ms queue=1.4ms idle=45.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "morefun", "vendor", 73234, ~N[2026-08-19 08:15:20], ~N[2026-08-19 08:15:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:20.884] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737347, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:20], updated_at: ~N[2026-08-19 08:15:20]}} [2026-08-19 08:15:20.884] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:15:20Z", "value" => "kiosk_launcher"} [2026-08-19 08:15:20.929] [DEBUG] QUERY OK db=43.7ms idle=81.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "kiosk_launcher", "model", 73234, ~N[2026-08-19 08:15:20], ~N[2026-08-19 08:15:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:20.930] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737350, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:20], updated_at: ~N[2026-08-19 08:15:20]}} [2026-08-19 08:15:20.931] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:15:20Z", "value" => "1.0"} [2026-08-19 08:15:20.986] [DEBUG] QUERY OK db=55.3ms idle=39.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "1.0", "app_version", 73234, ~N[2026-08-19 08:15:20], ~N[2026-08-19 08:15:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:20.992] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737352, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:20], updated_at: ~N[2026-08-19 08:15:20]}} [2026-08-19 08:15:20.993] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:15:20Z", "value" => "13"} [2026-08-19 08:15:21.057] [DEBUG] QUERY OK db=62.5ms idle=66.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "13", "android_version", 73234, ~N[2026-08-19 08:15:20], ~N[2026-08-19 08:15:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737356, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:20], updated_at: ~N[2026-08-19 08:15:20]}} [2026-08-19 08:15:21.063] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:15:20Z", "value" => "1033"} [2026-08-19 08:15:21.129] [DEBUG] QUERY OK db=64.9ms queue=0.4ms idle=77.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "1033", "ram_free_mb", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.132] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737359, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.132] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:15:20Z", "value" => "WIFI"} [2026-08-19 08:15:21.211] [DEBUG] QUERY OK db=78.5ms idle=75.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "WIFI", "network_type", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.214] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737362, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.214] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:15:20Z", "value" => "true"} [2026-08-19 08:15:21.281] [DEBUG] QUERY OK db=66.3ms idle=85.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "true", "kiosk_active", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.286] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737364, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.286] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:15:20Z", "value" => ""} [2026-08-19 08:15:21.351] [DEBUG] QUERY OK db=63.7ms idle=75.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:15:20Z", "sim_operator", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.355] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737368, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.355] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"} [2026-08-19 08:15:21.435] [DEBUG] QUERY OK db=79.3ms idle=74.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "UNKNOWN", "sim_number", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.437] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737371, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.437] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"} [2026-08-19 08:15:21.570] [DEBUG] QUERY OK db=132.3ms idle=86.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "UNKNOWN", "sim_iccid", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.572] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737374, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.572] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"} [2026-08-19 08:15:21.616] [DEBUG] QUERY OK db=43.0ms idle=137.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "UNKNOWN", "sim_imsi", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.621] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737377, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.621] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"} [2026-08-19 08:15:21.665] [DEBUG] QUERY OK db=43.3ms queue=0.3ms idle=51.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "UNKNOWN", "sim_iccid2", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.672] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737381, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.675] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:15:20Z", "value" => "UNKNOWN"} [2026-08-19 08:15:21.734] [DEBUG] QUERY OK db=58.9ms idle=59.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "UNKNOWN", "sim_imsi2", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.744] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737384, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.747] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:15:20Z", "value" => "6"} [2026-08-19 08:15:21.819] [DEBUG] QUERY OK db=72.4ms idle=81.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "6", "data_usage_mb", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:21.821] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737387, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:21.821] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:15:20Z", "value" => "0"} [2026-08-19 08:15:22.034] [DEBUG] QUERY OK db=212.4ms idle=87.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "0", "mobile_data_mb", 73234, ~N[2026-08-19 08:15:21], ~N[2026-08-19 08:15:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:22.039] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737390, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:21], updated_at: ~N[2026-08-19 08:15:21]}} [2026-08-19 08:15:22.043] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:15:20Z", "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), 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), Scanne" <> ...} [2026-08-19 08:15:22.158] [DEBUG] QUERY OK db=111.4ms idle=137.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:20Z", "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), 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), Scanne" <> ..., "installed_apps", 73234, ~N[2026-08-19 08:15:22], ~N[2026-08-19 08:15:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:22.165] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737391, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:15:20Z", message: nil, status_log_id: 73234, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:22], updated_at: ~N[2026-08-19 08:15:22]}} [2026-08-19 08:15:50.780] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:15:50.780] [INFO ] Incoming JSON payload: {"oid":"c7d02581-b20f-41c5-ad7b-885a37857ef3","sn":"98251226730001","uploadTime":"2026-08-19T08:15:50Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"ram_free_mb","value":"1036","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:15:50Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:15:50Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:15:50.781] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "c7d02581-b20f-41c5-ad7b-885a37857ef3", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:15:50Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:15:50Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:15:50Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:15:50Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:15:50Z", "value" => "1036"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:15:50Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:15:50Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:15:50Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:15:50Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:15:50Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:15:50Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:15:50Z", "vendor" => "morefun"} [2026-08-19 08:15:50.782] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:15:50.782] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:15:50.782] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:15:50.784] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=639.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-08-19 08:15:50.786] [DEBUG] QUERY OK source="parameter_templates" db=1.8ms idle=319.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-08-19 08:15:50.786] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:15:50.792] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms queue=1.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:15:50.792] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:15:50.824] [DEBUG] QUERY OK source="tms_terminals" db=32.0ms idle=6.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:15:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:15:50.825] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:15:50.826] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=33.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:1184 [2026-08-19 08:15:50.881] [DEBUG] QUERY OK source="tms_terminals" db=54.2ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:15:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:15:50.882] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.8ms idle=55.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:15:50.934] [DEBUG] QUERY OK db=50.9ms idle=1.6ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["c7d02581-b20f-41c5-ad7b-885a37857ef3", 33, "2026-08-19T08:15:50Z", ~N[2026-08-19 08:15:50], ~N[2026-08-19 08:15:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:15:50.935] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73235, oid: "c7d02581-b20f-41c5-ad7b-885a37857ef3", upload_time: "2026-08-19T08:15:50Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:50], updated_at: ~N[2026-08-19 08:15:50]} [2026-08-19 08:15:50.935] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:15:50Z", "value" => "morefun"} [2026-08-19 08:15:50.997] [DEBUG] QUERY OK db=61.5ms idle=53.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "morefun", "vendor", 73235, ~N[2026-08-19 08:15:50], ~N[2026-08-19 08:15:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.000] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737393, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:50], updated_at: ~N[2026-08-19 08:15:50]}} [2026-08-19 08:15:51.000] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:15:50Z", "value" => "kiosk_launcher"} [2026-08-19 08:15:51.044] [DEBUG] QUERY OK db=43.4ms idle=66.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "kiosk_launcher", "model", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.049] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737395, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.050] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:15:50Z", "value" => "1.0"} [2026-08-19 08:15:51.134] [DEBUG] QUERY OK db=83.5ms idle=52.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "1.0", "app_version", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.137] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737398, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.138] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:15:50Z", "value" => "13"} [2026-08-19 08:15:51.238] [DEBUG] QUERY OK db=96.8ms idle=96.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "13", "android_version", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.244] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737401, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.244] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:15:50Z", "value" => "1036"} [2026-08-19 08:15:51.393] [DEBUG] QUERY OK db=148.2ms idle=94.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "1036", "ram_free_mb", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.397] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737403, itemkey: "ram_free_mb", value: "1036", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.397] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:15:50Z", "value" => "WIFI"} [2026-08-19 08:15:51.550] [DEBUG] QUERY OK db=152.9ms idle=159.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "WIFI", "network_type", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.556] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737406, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.556] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:15:50Z", "value" => "true"} [2026-08-19 08:15:51.635] [DEBUG] QUERY OK db=77.5ms queue=1.1ms idle=163.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "true", "kiosk_active", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.641] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737408, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.641] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:15:50Z", "value" => ""} [2026-08-19 08:15:51.691] [DEBUG] QUERY OK db=48.9ms queue=0.7ms idle=91.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:15:50Z", "sim_operator", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.701] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737411, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.701] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"} [2026-08-19 08:15:51.753] [DEBUG] QUERY OK db=51.3ms queue=0.1ms idle=65.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "UNKNOWN", "sim_number", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.756] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737413, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.756] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"} [2026-08-19 08:15:51.823] [DEBUG] QUERY OK db=65.3ms queue=1.5ms idle=65.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "UNKNOWN", "sim_iccid", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.829] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737416, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.831] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"} [2026-08-19 08:15:51.901] [DEBUG] QUERY OK db=66.2ms queue=2.9ms idle=78.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "UNKNOWN", "sim_imsi", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.912] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737420, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.912] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"} [2026-08-19 08:15:51.988] [DEBUG] QUERY OK db=65.7ms idle=99.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "UNKNOWN", "sim_iccid2", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:51.997] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737422, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:51.999] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:15:50Z", "value" => "UNKNOWN"} [2026-08-19 08:15:52.053] [DEBUG] QUERY OK db=53.6ms idle=99.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "UNKNOWN", "sim_imsi2", 73235, ~N[2026-08-19 08:15:51], ~N[2026-08-19 08:15:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:52.056] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737425, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:51], updated_at: ~N[2026-08-19 08:15:51]}} [2026-08-19 08:15:52.056] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:15:50Z", "value" => "6"} [2026-08-19 08:15:52.100] [DEBUG] QUERY OK db=42.6ms queue=0.1ms idle=68.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "6", "data_usage_mb", 73235, ~N[2026-08-19 08:15:52], ~N[2026-08-19 08:15:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:52.105] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737428, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:52], updated_at: ~N[2026-08-19 08:15:52]}} [2026-08-19 08:15:52.106] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:15:50Z", "value" => "0"} [2026-08-19 08:15:52.174] [DEBUG] QUERY OK db=66.6ms idle=54.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "0", "mobile_data_mb", 73235, ~N[2026-08-19 08:15:52], ~N[2026-08-19 08:15:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:52.177] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737431, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:52], updated_at: ~N[2026-08-19 08:15:52]}} [2026-08-19 08:15:52.179] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:15:50Z", "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), 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), Scanne" <> ...} [2026-08-19 08:15:52.278] [DEBUG] QUERY OK db=97.9ms idle=26.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:15:50Z", "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), 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), Scanne" <> ..., "installed_apps", 73235, ~N[2026-08-19 08:15:52], ~N[2026-08-19 08:15:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:15:52.282] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737432, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:15:50Z", message: nil, status_log_id: 73235, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:15:52], updated_at: ~N[2026-08-19 08:15:52]}} [2026-08-19 08:16:20.890] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:16:20.890] [INFO ] Incoming JSON payload: {"oid":"e32f41e2-6a00-42d0-846a-ca6a76e2076d","sn":"98251226730001","uploadTime":"2026-08-19T08:16:20Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"ram_free_mb","value":"1035","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:16:20Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:16:20Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:16:20.891] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e32f41e2-6a00-42d0-846a-ca6a76e2076d", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:16:20Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:16:20Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:16:20Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:16:20Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:16:20Z", "value" => "1035"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:16:20Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:16:20Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:16:20Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:16:20Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:16:20Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:16:20Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:16:20Z", "vendor" => "morefun"} [2026-08-19 08:16:20.891] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:16:20.891] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:16:20.892] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:16:20.898] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=798.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-08-19 08:16:20.899] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=605.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-08-19 08:16:20.899] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:16:20.903] [DEBUG] QUERY OK source="tms_terminals" db=3.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:140 [2026-08-19 08:16:20.904] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:16:21.038] [DEBUG] QUERY OK source="tms_terminals" db=131.0ms idle=7.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:16:20], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:16:21.038] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:16:21.040] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.1ms idle=135.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:1184 [2026-08-19 08:16:21.100] [DEBUG] QUERY OK source="tms_terminals" db=59.7ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:16:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:16:21.104] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.9ms idle=62.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:16:21.156] [DEBUG] QUERY OK db=50.8ms idle=5.1ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["e32f41e2-6a00-42d0-846a-ca6a76e2076d", 33, "2026-08-19T08:16:20Z", ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:16:21.161] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73240, oid: "e32f41e2-6a00-42d0-846a-ca6a76e2076d", upload_time: "2026-08-19T08:16:20Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]} [2026-08-19 08:16:21.161] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:16:20Z", "value" => "morefun"} [2026-08-19 08:16:21.214] [DEBUG] QUERY OK db=51.5ms queue=0.5ms idle=58.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "morefun", "vendor", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.220] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737442, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.222] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:16:20Z", "value" => "kiosk_launcher"} [2026-08-19 08:16:21.285] [DEBUG] QUERY OK db=61.8ms idle=66.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "kiosk_launcher", "model", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.292] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737445, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.292] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:16:20Z", "value" => "1.0"} [2026-08-19 08:16:21.358] [DEBUG] QUERY OK db=65.6ms idle=78.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "1.0", "app_version", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.363] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737448, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.363] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:16:20Z", "value" => "13"} [2026-08-19 08:16:21.419] [DEBUG] QUERY OK db=55.3ms idle=60.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "13", "android_version", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.422] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737452, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.422] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:16:20Z", "value" => "1035"} [2026-08-19 08:16:21.466] [DEBUG] QUERY OK db=42.5ms queue=1.3ms idle=63.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "1035", "ram_free_mb", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.474] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737455, itemkey: "ram_free_mb", value: "1035", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.474] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:16:20Z", "value" => "WIFI"} [2026-08-19 08:16:21.565] [DEBUG] QUERY OK db=90.6ms decode=0.2ms idle=55.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "WIFI", "network_type", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.569] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737458, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.569] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:16:20Z", "value" => "true"} [2026-08-19 08:16:21.646] [DEBUG] QUERY OK db=73.4ms queue=2.6ms idle=103.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "true", "kiosk_active", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.652] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737461, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.652] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:16:20Z", "value" => ""} [2026-08-19 08:16:21.715] [DEBUG] QUERY OK db=61.8ms queue=0.8ms idle=87.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:16:20Z", "sim_operator", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.723] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737464, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.723] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"} [2026-08-19 08:16:21.786] [DEBUG] QUERY OK db=58.1ms queue=0.1ms idle=81.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "UNKNOWN", "sim_number", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.793] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737467, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.793] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"} [2026-08-19 08:16:21.838] [DEBUG] QUERY OK db=44.7ms idle=77.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "UNKNOWN", "sim_iccid", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.846] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737471, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.847] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"} [2026-08-19 08:16:21.886] [DEBUG] QUERY OK db=38.9ms idle=61.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "UNKNOWN", "sim_imsi", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:21.892] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737474, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:21.892] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"} [2026-08-19 08:16:21.998] [DEBUG] QUERY OK db=100.4ms queue=0.4ms idle=58.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "UNKNOWN", "sim_iccid2", 73240, ~N[2026-08-19 08:16:21], ~N[2026-08-19 08:16:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:22.006] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737477, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:21], updated_at: ~N[2026-08-19 08:16:21]}} [2026-08-19 08:16:22.006] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:16:20Z", "value" => "UNKNOWN"} [2026-08-19 08:16:22.107] [DEBUG] QUERY OK db=94.6ms queue=3.8ms idle=122.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "UNKNOWN", "sim_imsi2", 73240, ~N[2026-08-19 08:16:22], ~N[2026-08-19 08:16:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:22.125] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737480, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:22], updated_at: ~N[2026-08-19 08:16:22]}} [2026-08-19 08:16:22.125] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:16:20Z", "value" => "6"} [2026-08-19 08:16:22.194] [DEBUG] QUERY OK db=66.6ms queue=2.1ms idle=127.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "6", "data_usage_mb", 73240, ~N[2026-08-19 08:16:22], ~N[2026-08-19 08:16:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:22.203] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737483, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:22], updated_at: ~N[2026-08-19 08:16:22]}} [2026-08-19 08:16:22.203] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:16:20Z", "value" => "0"} [2026-08-19 08:16:22.248] [DEBUG] QUERY OK db=39.1ms queue=5.1ms idle=96.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "0", "mobile_data_mb", 73240, ~N[2026-08-19 08:16:22], ~N[2026-08-19 08:16:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:22.255] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737487, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:22], updated_at: ~N[2026-08-19 08:16:22]}} [2026-08-19 08:16:22.261] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:16:20Z", "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), 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), Scanne" <> ...} [2026-08-19 08:16:22.306] [DEBUG] QUERY OK db=39.9ms queue=2.0ms idle=66.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:20Z", "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), 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), Scanne" <> ..., "installed_apps", 73240, ~N[2026-08-19 08:16:22], ~N[2026-08-19 08:16:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:22.311] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737488, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:16:20Z", message: nil, status_log_id: 73240, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:22], updated_at: ~N[2026-08-19 08:16:22]}} [2026-08-19 08:16:36.994] [INFO ] Received status update for terminal 98251226730002 [2026-08-19 08:16:36.994] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-08-19T08:16:05Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-08-19T08:16:05Z","value":"69"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-08-19T08:16:05Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-08-19T08:16:05Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-08-19T08:16:05Z","value":""},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-08-19T08:16:05Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-08-19T08:16:05Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-08-19T08:16:05Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-08-19T08:16:05Z","vendor":"MoreFun"} [2026-08-19 08:16:36.995] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-08-19T08:16:05Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-08-19T08:16:05Z", "value" => "69"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-08-19T08:16:05Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-08-19T08:16:05Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-08-19T08:16:05Z", "value" => ""}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-08-19T08:16:05Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-08-19T08:16:05Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-08-19T08:16:05Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-08-19T08:16:05Z", "vendor" => "MoreFun"} [2026-08-19 08:16:36.995] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: ""} [2026-08-19 08:16:36.995] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-08-19 08:16:36.995] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-08-19 08:16:36.999] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=1165.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-08-19 08:16:37.000] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=614.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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:16:37.003] [DEBUG] QUERY OK source="parameter_template_values" db=2.0ms 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-08-19 08:16:37.023] [DEBUG] QUERY OK source="parameter_definitions" db=6.0ms queue=0.9ms idle=15.7ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:16:37.053] [DEBUG] QUERY OK source="pos_terminal" db=0.5ms queue=0.9ms idle=49.2ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-08-19 08:16:37.066] [DEBUG] QUERY OK source="pos_merchant" db=0.5ms queue=0.8ms idle=42.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [206] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-08-19 08:16:37.068] [DEBUG] QUERY OK db=1.3ms queue=0.4ms idle=263.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 ["510159090000000"] [2026-08-19 08:16:37.068] [ERROR] ParamsZipBuilder: No merchant info found for merchantid=510159090000000 [2026-08-19 08:16:37.068] [ERROR] AutoPushService: ParamsZipBuilder failed for 98251226730002: "Could not fetch merchant info for merchantid 510159090000000" [2026-08-19 08:16:37.069] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=15.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-08-19 08:16:37.094] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-08-19 08:16:37.160] [DEBUG] QUERY OK db=61.5ms queue=0.6ms idle=32.2ms 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", "7dcefb03ada50876398ea793a46644c39ebb00d475d015e92bbaf0c2b9724f22", 1765, 17947, ~U[2026-08-19 08:16:37Z], "priv/ota/98251226730002/l3config.zip", 13, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-08-19 08:16:37], ~N[2026-08-19 08:16:37]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-08-19 08:16:37.161] [INFO ] AutoPushService: Created push log 45780 for MF919 l3config.zip (version: 1.0.1) [2026-08-19 08:16:37.161] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4017/ota/98251226730002/l3config.zip", "requestId" => 1765, "type" => "tms_command", "version" => "1.0.1"} [2026-08-19 08:16:37.161] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-08-19 08:16:37.161] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-08-19 08:16:37.162] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=92.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-08-19 08:16:37.163] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-08-19 08:16:37.164] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms 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.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:16:37.164] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:16:37.167] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:16:37.167] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:16:37.167] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:16:37.170] [DEBUG] QUERY OK source="config_file_versions" db=2.4ms 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.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-08-19 08:16:37.170] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-08-19 08:16:37.170] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-08-19 08:16:37.173] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms 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` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:16:37.173] [INFO ] Terminal updated: 98251226730002 [2026-08-19 08:16:37.223] [DEBUG] QUERY OK source="tms_terminals" db=49.1ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:16:37], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:16:37.227] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=51.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-08-19 08:16:37.227] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-08-19 08:16:37.229] [DEBUG] QUERY OK source="tms_terminals" db=0.3ms queue=1.2ms 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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:16:37.265] [DEBUG] QUERY OK source="tms_terminals" db=34.0ms queue=0.3ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:16:37], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:16:37.269] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.2ms idle=37.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730002"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:16:37.567] [DEBUG] QUERY OK db=297.5ms idle=4.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["organization_id", 13, "2026-08-19T08:16:05Z", ~N[2026-08-19 08:16:37], ~N[2026-08-19 08:16:37]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:16:37.576] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73242, oid: "organization_id", upload_time: "2026-08-19T08:16:05Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:37], updated_at: ~N[2026-08-19 08:16:37]} [2026-08-19 08:16:37.577] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-08-19T08:16:05Z", "value" => "online"} [2026-08-19 08:16:37.659] [DEBUG] QUERY OK db=77.7ms queue=2.6ms idle=192.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-08-19T08:16:05Z", "online", "status", 73242, ~N[2026-08-19 08:16:37], ~N[2026-08-19 08:16:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:37.664] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737491, itemkey: "status", value: "online", timestamp: "2026-08-19T08:16:05Z", message: "Terminal status update", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:37], updated_at: ~N[2026-08-19 08:16:37]}} [2026-08-19 08:16:37.665] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-08-19 08:16:37.665] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-08-19T08:16:05Z", "value" => "69"} [2026-08-19 08:16:37.734] [DEBUG] QUERY OK db=66.6ms idle=99.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-08-19T08:16:05Z", "69", "battery", 73242, ~N[2026-08-19 08:16:37], ~N[2026-08-19 08:16:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:37.739] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737493, itemkey: "battery", value: "69", timestamp: "2026-08-19T08:16:05Z", message: "Battery level", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:37], updated_at: ~N[2026-08-19 08:16:37]}} [2026-08-19 08:16:37.742] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-08-19T08:16:05Z", "value" => "online"} [2026-08-19 08:16:37.920] [DEBUG] QUERY OK db=177.7ms queue=0.2ms idle=82.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-08-19T08:16:05Z", "online", "network", 73242, ~N[2026-08-19 08:16:37], ~N[2026-08-19 08:16:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:37.925] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737496, itemkey: "network", value: "online", timestamp: "2026-08-19T08:16:05Z", message: "Network connectivity", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:37], updated_at: ~N[2026-08-19 08:16:37]}} [2026-08-19 08:16:37.928] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-08-19 08:16:37.928] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-08-19T08:16:05Z", "value" => "0"} [2026-08-19 08:16:38.012] [DEBUG] QUERY OK db=79.7ms idle=195.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-08-19T08:16:05Z", "0", "cpu", 73242, ~N[2026-08-19 08:16:37], ~N[2026-08-19 08:16:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:38.018] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737499, itemkey: "cpu", value: "0", timestamp: "2026-08-19T08:16:05Z", message: "CPU usage percentage", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:37], updated_at: ~N[2026-08-19 08:16:37]}} [2026-08-19 08:16:38.019] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-08-19T08:16:05Z", "value" => ""} [2026-08-19 08:16:38.113] [DEBUG] QUERY OK db=90.6ms queue=2.3ms idle=99.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current parameters version", "2026-08-19T08:16:05Z", "parameter_config", 73242, ~N[2026-08-19 08:16:38], ~N[2026-08-19 08:16:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:38.117] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737502, itemkey: "parameter_config", value: nil, timestamp: "2026-08-19T08:16:05Z", message: "Current parameters version", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:38], updated_at: ~N[2026-08-19 08:16:38]}} [2026-08-19 08:16:38.118] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-08-19T08:16:05Z", "value" => "1.0.1"} [2026-08-19 08:16:38.156] [DEBUG] QUERY OK db=37.5ms queue=0.3ms idle=109.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-08-19T08:16:05Z", "1.0.1", "emv_config", 73242, ~N[2026-08-19 08:16:38], ~N[2026-08-19 08:16:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:38.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737505, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-08-19T08:16:05Z", message: "Current EMV config version", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:38], updated_at: ~N[2026-08-19 08:16:38]}} [2026-08-19 08:16:38.160] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-08-19T08:16:05Z", "value" => ""} [2026-08-19 08:16:38.250] [DEBUG] QUERY OK db=89.5ms queue=0.1ms idle=47.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-08-19T08:16:05Z", "keys_config", 73242, ~N[2026-08-19 08:16:38], ~N[2026-08-19 08:16:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:38.258] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737507, itemkey: "keys_config", value: nil, timestamp: "2026-08-19T08:16:05Z", message: "Current keys config version", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:38], updated_at: ~N[2026-08-19 08:16:38]}} [2026-08-19 08:16:38.258] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-08-19T08:16:05Z", "value" => ""} [2026-08-19 08:16:38.387] [DEBUG] QUERY OK db=82.3ms queue=44.8ms idle=103.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-08-19T08:16:05Z", "application", 73242, ~N[2026-08-19 08:16:38], ~N[2026-08-19 08:16:38]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:38.395] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737511, itemkey: "application", value: nil, timestamp: "2026-08-19T08:16:05Z", message: "Current application version", status_log_id: 73242, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:38], updated_at: ~N[2026-08-19 08:16:38]}} [2026-08-19 08:16:38.396] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"1765","status":"success","timestamp":1787127366013,"type":"tms_response"} [2026-08-19 08:16:38.406] [INFO ] Processing file download response for device 98251226730002, request_id: 1765 [2026-08-19 08:16:38.422] [DEBUG] QUERY OK source="file_download_logs" db=2.0ms queue=1.3ms idle=32.1ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["1765"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:16:38.422] [INFO ] No file download log for request_id 1765; response not attached to a push [2026-08-19 08:16:38.423] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:16:38.423019Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "1765", "status" => "success", "timestamp" => 1787127366013, "type" => "tms_response"}, request_id: "1765", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:16:38.423] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"14594","status":"success","timestamp":1787127366420,"type":"tms_response"} [2026-08-19 08:16:38.423] [INFO ] Processing file download response for device 98251226730002, request_id: 14594 [2026-08-19 08:16:38.428] [DEBUG] QUERY OK source="file_download_logs" db=4.9ms idle=32.3ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["14594"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:16:38.428] [INFO ] No file download log for request_id 14594; response not attached to a push [2026-08-19 08:16:38.428] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:16:38.428846Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "14594", "status" => "success", "timestamp" => 1787127366420, "type" => "tms_response"}, request_id: "14594", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:16:38.429] [WARN ] Unexpected async result [2026-08-19 08:16:38.794] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"119811","status":"success","timestamp":1787127367034,"type":"tms_response"} [2026-08-19 08:16:38.794] [INFO ] Processing file download response for device 98251226730002, request_id: 119811 [2026-08-19 08:16:38.796] [DEBUG] QUERY OK source="file_download_logs" db=1.6ms idle=372.4ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["119811"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:16:38.796] [INFO ] No file download log for request_id 119811; response not attached to a push [2026-08-19 08:16:38.797] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:16:38.797105Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "119811", "status" => "success", "timestamp" => 1787127367034, "type" => "tms_response"}, request_id: "119811", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:16:50.974] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:16:50.974] [INFO ] Incoming JSON payload: {"oid":"b55a8b14-14d5-4cde-8764-c8b240b55faf","sn":"98251226730001","uploadTime":"2026-08-19T08:16:51Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"ram_free_mb","value":"1033","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:16:51Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:16:51Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:16:50.977] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "b55a8b14-14d5-4cde-8764-c8b240b55faf", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:16:51Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:16:51Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:16:51Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:16:51Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:16:51Z", "value" => "1033"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:16:51Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:16:51Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:16:51Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:16:51Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:16:51Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:16:51Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:16:51Z", "vendor" => "morefun"} [2026-08-19 08:16:50.977] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:16:50.978] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:16:50.979] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:16:50.984] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=547.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-08-19 08:16:50.990] [DEBUG] QUERY OK source="parameter_templates" db=6.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.`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-08-19 08:16:50.991] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:16:50.993] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=1.2ms 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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:16:50.993] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:16:51.063] [DEBUG] QUERY OK source="tms_terminals" db=68.5ms idle=3.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:16:50], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:16:51.063] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:16:51.066] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms idle=69.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:1184 [2026-08-19 08:16:51.144] [DEBUG] QUERY OK source="tms_terminals" db=78.0ms idle=3.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:16:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:16:51.145] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms idle=78.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:16:51.252] [DEBUG] QUERY OK db=106.0ms idle=1.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["b55a8b14-14d5-4cde-8764-c8b240b55faf", 33, "2026-08-19T08:16:51Z", ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:16:51.256] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73245, oid: "b55a8b14-14d5-4cde-8764-c8b240b55faf", upload_time: "2026-08-19T08:16:51Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]} [2026-08-19 08:16:51.256] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:16:51Z", "value" => "morefun"} [2026-08-19 08:16:51.404] [DEBUG] QUERY OK db=106.5ms queue=41.7ms idle=110.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "morefun", "vendor", 73245, ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:51.408] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737516, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]}} [2026-08-19 08:16:51.409] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:16:51Z", "value" => "kiosk_launcher"} [2026-08-19 08:16:51.499] [DEBUG] QUERY OK db=87.8ms queue=1.8ms idle=157.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "kiosk_launcher", "model", 73245, ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:51.501] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737519, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]}} [2026-08-19 08:16:51.501] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:16:51Z", "value" => "1.0"} [2026-08-19 08:16:51.608] [DEBUG] QUERY OK db=105.8ms idle=64.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "1.0", "app_version", 73245, ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:51.613] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737523, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]}} [2026-08-19 08:16:51.613] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:16:51Z", "value" => "13"} [2026-08-19 08:16:51.827] [DEBUG] QUERY OK db=213.3ms idle=114.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "13", "android_version", 73245, ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:51.830] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737526, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]}} [2026-08-19 08:16:51.830] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:16:51Z", "value" => "1033"} [2026-08-19 08:16:51.958] [DEBUG] QUERY OK db=126.8ms idle=223.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "1033", "ram_free_mb", 73245, ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:51.961] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737530, itemkey: "ram_free_mb", value: "1033", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]}} [2026-08-19 08:16:51.961] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:16:51Z", "value" => "WIFI"} [2026-08-19 08:16:52.021] [DEBUG] QUERY OK db=59.3ms idle=134.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "WIFI", "network_type", 73245, ~N[2026-08-19 08:16:51], ~N[2026-08-19 08:16:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.026] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737534, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:51], updated_at: ~N[2026-08-19 08:16:51]}} [2026-08-19 08:16:52.026] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:16:51Z", "value" => "true"} [2026-08-19 08:16:52.078] [DEBUG] QUERY OK db=51.2ms idle=68.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "true", "kiosk_active", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.085] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737537, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.085] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:16:51Z", "value" => ""} [2026-08-19 08:16:52.137] [DEBUG] QUERY OK db=51.1ms idle=64.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:16:51Z", "sim_operator", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.150] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737540, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.150] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"} [2026-08-19 08:16:52.197] [DEBUG] QUERY OK db=46.7ms idle=72.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "UNKNOWN", "sim_number", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.202] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737543, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.202] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"} [2026-08-19 08:16:52.264] [DEBUG] QUERY OK db=61.8ms idle=65.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "UNKNOWN", "sim_iccid", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.267] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737546, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.267] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"} [2026-08-19 08:16:52.354] [DEBUG] QUERY OK db=86.1ms queue=0.1ms idle=70.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "UNKNOWN", "sim_imsi", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.358] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737548, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.359] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"} [2026-08-19 08:16:52.435] [DEBUG] QUERY OK db=74.9ms idle=95.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "UNKNOWN", "sim_iccid2", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.449] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737552, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.449] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:16:51Z", "value" => "UNKNOWN"} [2026-08-19 08:16:52.552] [DEBUG] QUERY OK db=102.7ms idle=14.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "UNKNOWN", "sim_imsi2", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.556] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737556, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.556] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:16:51Z", "value" => "6"} [2026-08-19 08:16:52.637] [DEBUG] QUERY OK db=79.9ms queue=0.2ms idle=108.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "6", "data_usage_mb", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.640] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737558, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.641] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:16:51Z", "value" => "0"} [2026-08-19 08:16:52.858] [DEBUG] QUERY OK db=215.5ms queue=1.3ms idle=88.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "0", "mobile_data_mb", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:52.862] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737559, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:16:52.865] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:16:51Z", "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), 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), Scanne" <> ...} [2026-08-19 08:16:53.030] [DEBUG] QUERY OK db=164.0ms queue=0.1ms idle=228.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:16:51Z", "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), 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), Scanne" <> ..., "installed_apps", 73245, ~N[2026-08-19 08:16:52], ~N[2026-08-19 08:16:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:16:53.033] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737560, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:16:51Z", message: nil, status_log_id: 73245, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:16:52], updated_at: ~N[2026-08-19 08:16:52]}} [2026-08-19 08:17:21.343] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:17:21.343] [INFO ] Incoming JSON payload: {"oid":"60ba43b0-b28b-468e-a765-ec44100ded3b","sn":"98251226730001","uploadTime":"2026-08-19T08:17:21Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"ram_free_mb","value":"1038","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:17:21Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:17:21Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:17:21.347] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "60ba43b0-b28b-468e-a765-ec44100ded3b", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:17:21Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:17:21Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:17:21Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:17:21Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:17:21Z", "value" => "1038"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:17:21Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:17:21Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:17:21Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:17:21Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:17:21Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:17:21Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:17:21Z", "vendor" => "morefun"} [2026-08-19 08:17:21.350] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:17:21.350] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:17:21.350] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:17:21.353] [DEBUG] QUERY OK source="parameter_templates" db=2.4ms idle=799.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-08-19 08:17:21.355] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms queue=1.5ms idle=399.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-08-19 08:17:21.355] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:17:21.357] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:17:21.358] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:17:21.405] [DEBUG] QUERY OK source="tms_terminals" db=46.6ms idle=2.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:17:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:17:21.405] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:17:21.406] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=47.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:1184 [2026-08-19 08:17:21.470] [DEBUG] QUERY OK source="tms_terminals" db=63.8ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:17:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:17:21.472] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.9ms idle=65.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:17:21.564] [DEBUG] QUERY OK db=91.3ms idle=2.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["60ba43b0-b28b-468e-a765-ec44100ded3b", 33, "2026-08-19T08:17:21Z", ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:17:21.568] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73249, oid: "60ba43b0-b28b-468e-a765-ec44100ded3b", upload_time: "2026-08-19T08:17:21Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]} [2026-08-19 08:17:21.568] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:17:21Z", "value" => "morefun"} [2026-08-19 08:17:21.619] [DEBUG] QUERY OK db=50.3ms idle=14.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "morefun", "vendor", 73249, ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:21.622] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737563, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]}} [2026-08-19 08:17:21.623] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:17:21Z", "value" => "kiosk_launcher"} [2026-08-19 08:17:21.678] [DEBUG] QUERY OK db=55.2ms idle=59.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "kiosk_launcher", "model", 73249, ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:21.681] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737566, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]}} [2026-08-19 08:17:21.681] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:17:21Z", "value" => "1.0"} [2026-08-19 08:17:21.780] [DEBUG] QUERY OK db=99.3ms idle=61.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "1.0", "app_version", 73249, ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:21.782] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737569, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]}} [2026-08-19 08:17:21.782] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:17:21Z", "value" => "13"} [2026-08-19 08:17:21.860] [DEBUG] QUERY OK db=76.9ms idle=105.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "13", "android_version", 73249, ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:21.865] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737572, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]}} [2026-08-19 08:17:21.865] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:17:21Z", "value" => "1038"} [2026-08-19 08:17:21.917] [DEBUG] QUERY OK db=50.9ms idle=85.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "1038", "ram_free_mb", 73249, ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:21.922] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737576, itemkey: "ram_free_mb", value: "1038", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]}} [2026-08-19 08:17:21.923] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:17:21Z", "value" => "WIFI"} [2026-08-19 08:17:21.996] [DEBUG] QUERY OK db=70.8ms queue=0.1ms idle=65.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "WIFI", "network_type", 73249, ~N[2026-08-19 08:17:21], ~N[2026-08-19 08:17:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:21.999] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737579, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:21], updated_at: ~N[2026-08-19 08:17:21]}} [2026-08-19 08:17:21.999] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:17:21Z", "value" => "true"} [2026-08-19 08:17:22.057] [DEBUG] QUERY OK db=56.6ms decode=0.2ms idle=83.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "true", "kiosk_active", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.067] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737582, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.068] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:17:21Z", "value" => ""} [2026-08-19 08:17:22.119] [DEBUG] QUERY OK db=50.0ms idle=72.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:17:21Z", "sim_operator", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.125] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737585, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.125] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"} [2026-08-19 08:17:22.202] [DEBUG] QUERY OK db=75.5ms queue=0.7ms idle=69.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "UNKNOWN", "sim_number", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.204] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737588, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.204] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"} [2026-08-19 08:17:22.277] [DEBUG] QUERY OK db=72.3ms idle=86.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "UNKNOWN", "sim_iccid", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.281] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737590, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.281] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"} [2026-08-19 08:17:22.323] [DEBUG] QUERY OK db=41.6ms idle=79.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "UNKNOWN", "sim_imsi", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.330] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737594, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.331] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"} [2026-08-19 08:17:22.360] [DEBUG] QUERY OK db=27.5ms idle=54.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "UNKNOWN", "sim_iccid2", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.363] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737597, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.363] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:17:21Z", "value" => "UNKNOWN"} [2026-08-19 08:17:22.464] [DEBUG] QUERY OK db=100.4ms idle=40.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "UNKNOWN", "sim_imsi2", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.472] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737599, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.473] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:17:21Z", "value" => "6"} [2026-08-19 08:17:22.537] [DEBUG] QUERY OK db=60.2ms idle=117.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "6", "data_usage_mb", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.541] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737603, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.541] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:17:21Z", "value" => "0"} [2026-08-19 08:17:22.631] [DEBUG] QUERY OK db=88.1ms idle=78.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "0", "mobile_data_mb", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.634] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737607, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:22.635] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:17:21Z", "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), 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), Scanne" <> ...} [2026-08-19 08:17:22.700] [DEBUG] QUERY OK db=63.9ms idle=78.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:21Z", "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), 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), Scanne" <> ..., "installed_apps", 73249, ~N[2026-08-19 08:17:22], ~N[2026-08-19 08:17:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:22.706] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737608, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:17:21Z", message: nil, status_log_id: 73249, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:22], updated_at: ~N[2026-08-19 08:17:22]}} [2026-08-19 08:17:51.448] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:17:51.449] [INFO ] Incoming JSON payload: {"oid":"f8a72fa9-0a78-46e9-bcc1-cac4769cf30a","sn":"98251226730001","uploadTime":"2026-08-19T08:17:51Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"ram_free_mb","value":"1039","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:17:51Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:17:51Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:17:51.451] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "f8a72fa9-0a78-46e9-bcc1-cac4769cf30a", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:17:51Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:17:51Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:17:51Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:17:51Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:17:51Z", "value" => "1039"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:17:51Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:17:51Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:17:51Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:17:51Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:17:51Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:17:51Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:17:51Z", "vendor" => "morefun"} [2026-08-19 08:17:51.451] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:17:51.451] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:17:51.451] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:17:51.454] [DEBUG] QUERY OK source="parameter_templates" db=2.4ms idle=1496.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-08-19 08:17:51.458] [DEBUG] QUERY OK source="parameter_templates" db=3.1ms idle=812.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-08-19 08:17:51.458] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:17:51.463] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms decode=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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:17:51.463] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:17:51.516] [DEBUG] QUERY OK source="tms_terminals" db=52.5ms idle=6.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:17:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:17:51.519] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:17:51.521] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=58.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:1184 [2026-08-19 08:17:51.558] [DEBUG] QUERY OK source="tms_terminals" db=36.4ms idle=4.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:17:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:17:51.559] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms idle=37.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:17:51.634] [DEBUG] QUERY OK db=73.6ms decode=0.1ms idle=2.7ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["f8a72fa9-0a78-46e9-bcc1-cac4769cf30a", 33, "2026-08-19T08:17:51Z", ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:17:51.638] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73252, oid: "f8a72fa9-0a78-46e9-bcc1-cac4769cf30a", upload_time: "2026-08-19T08:17:51Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]} [2026-08-19 08:17:51.638] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:17:51Z", "value" => "morefun"} [2026-08-19 08:17:51.686] [DEBUG] QUERY OK db=46.3ms idle=79.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "morefun", "vendor", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:51.691] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737610, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:51.692] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:17:51Z", "value" => "kiosk_launcher"} [2026-08-19 08:17:51.776] [DEBUG] QUERY OK db=83.9ms idle=44.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "kiosk_launcher", "model", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:51.778] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737613, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:51.778] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:17:51Z", "value" => "1.0"} [2026-08-19 08:17:51.818] [DEBUG] QUERY OK db=38.9ms queue=0.1ms idle=93.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "1.0", "app_version", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:51.821] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737616, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:51.821] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:17:51Z", "value" => "13"} [2026-08-19 08:17:51.865] [DEBUG] QUERY OK db=41.9ms idle=46.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "13", "android_version", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:51.867] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737618, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:51.867] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:17:51Z", "value" => "1039"} [2026-08-19 08:17:51.946] [DEBUG] QUERY OK db=75.2ms idle=53.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "1039", "ram_free_mb", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:51.948] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737622, itemkey: "ram_free_mb", value: "1039", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:51.948] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:17:51Z", "value" => "WIFI"} [2026-08-19 08:17:51.981] [DEBUG] QUERY OK db=31.4ms idle=84.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "WIFI", "network_type", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:51.989] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737625, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:51.989] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:17:51Z", "value" => "true"} [2026-08-19 08:17:52.059] [DEBUG] QUERY OK db=69.5ms idle=43.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "true", "kiosk_active", 73252, ~N[2026-08-19 08:17:51], ~N[2026-08-19 08:17:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737628, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:51], updated_at: ~N[2026-08-19 08:17:51]}} [2026-08-19 08:17:52.064] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:17:51Z", "value" => ""} [2026-08-19 08:17:52.137] [DEBUG] QUERY OK db=72.6ms idle=83.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:17:51Z", "sim_operator", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.140] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737630, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.140] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"} [2026-08-19 08:17:52.182] [DEBUG] QUERY OK db=37.7ms queue=3.9ms idle=81.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "UNKNOWN", "sim_number", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.187] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737633, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.187] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"} [2026-08-19 08:17:52.275] [DEBUG] QUERY OK db=86.9ms idle=50.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "UNKNOWN", "sim_iccid", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.286] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737635, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.287] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"} [2026-08-19 08:17:52.346] [DEBUG] QUERY OK db=59.0ms idle=104.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "UNKNOWN", "sim_imsi", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.358] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737639, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.359] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"} [2026-08-19 08:17:52.468] [DEBUG] QUERY OK db=109.5ms idle=84.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "UNKNOWN", "sim_iccid2", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.477] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737642, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.478] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:17:51Z", "value" => "UNKNOWN"} [2026-08-19 08:17:52.521] [DEBUG] QUERY OK db=40.4ms queue=1.8ms idle=132.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "UNKNOWN", "sim_imsi2", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.526] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737645, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.526] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:17:51Z", "value" => "6"} [2026-08-19 08:17:52.576] [DEBUG] QUERY OK db=48.0ms idle=59.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "6", "data_usage_mb", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737648, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.583] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:17:51Z", "value" => "0"} [2026-08-19 08:17:52.639] [DEBUG] QUERY OK db=55.4ms queue=0.1ms idle=62.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "0", "mobile_data_mb", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.646] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737651, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:52.652] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:17:51Z", "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), 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), Scanne" <> ...} [2026-08-19 08:17:52.760] [DEBUG] QUERY OK db=107.2ms idle=75.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:17:51Z", "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), 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), Scanne" <> ..., "installed_apps", 73252, ~N[2026-08-19 08:17:52], ~N[2026-08-19 08:17:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:17:52.801] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737654, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:17:51Z", message: nil, status_log_id: 73252, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:17:52], updated_at: ~N[2026-08-19 08:17:52]}} [2026-08-19 08:17:57.914] [INFO ] Performing scheduled filter cache refresh... [2026-08-19 08:17:57.915] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=367.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-08-19 08:17:57.917] [DEBUG] QUERY OK source="filter_usage" db=1.9ms idle=231.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-08-19 08:17:57.918] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 8 models [2026-08-19 08:17:58.242] [INFO ] Running offline device check... [2026-08-19 08:17:58.242] [INFO ] Starting offline device check... [2026-08-19 08:17:58.248] [DEBUG] QUERY OK source="tms_terminals" db=6.1ms idle=326.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:1234 [2026-08-19 08:17:58.263] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.0ms queue=0.1ms idle=335.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:17:58.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms 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 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.272] [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:1249 [2026-08-19 08:17:58.274] [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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.276] [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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.277] [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 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.277] [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:1249 [2026-08-19 08:17:58.279] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.281] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.283] [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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.289] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.290] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.305] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.3ms 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:1249 [2026-08-19 08:17:58.314] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms 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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.316] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.317] [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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.337] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.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:1249 [2026-08-19 08:17:58.338] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=20.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:17:58.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.344] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.345] [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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.348] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=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:1249 [2026-08-19 08:17:58.393] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=43.2ms 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 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=45.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:17:58.397] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms 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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.409] [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:1249 [2026-08-19 08:17:58.410] [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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.411] [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:1249 [2026-08-19 08:17:58.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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:1249 [2026-08-19 08:17:58.416] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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:1249 [2026-08-19 08:17:58.417] [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 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.418] [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:1249 [2026-08-19 08:17:58.419] [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:1249 [2026-08-19 08:17:58.421] [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:1249 [2026-08-19 08:17:58.422] [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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.422] [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:1249 [2026-08-19 08:17:58.423] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.424] [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:1249 [2026-08-19 08:17:58.425] [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:1249 [2026-08-19 08:17:58.426] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.427] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.427] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.429] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.429] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.437] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.438] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms 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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:17:58.439] [INFO ] Offline device check completed. Found 47 offline devices, updated 0 statuses. [2026-08-19 08:17:58.440] [INFO ] Offline device check completed successfully [2026-08-19 08:18:21.857] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:18:21.858] [INFO ] Incoming JSON payload: {"oid":"1978a548-a9b6-4d18-b70b-7824ee21dafd","sn":"98251226730001","uploadTime":"2026-08-19T08:18:21Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"ram_free_mb","value":"1037","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:18:21Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:18:21Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:18:21.861] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "1978a548-a9b6-4d18-b70b-7824ee21dafd", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:18:21Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:18:21Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:18:21Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:18:21Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:18:21Z", "value" => "1037"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:18:21Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:18:21Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:18:21Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:18:21Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:18:21Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:18:21Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:18:21Z", "vendor" => "morefun"} [2026-08-19 08:18:21.862] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:18:21.863] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:18:21.863] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:18:21.865] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=905.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-08-19 08:18:21.866] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=41.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-08-19 08:18:21.866] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:18:21.869] [DEBUG] QUERY OK source="tms_terminals" db=2.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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:18:21.870] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:18:21.913] [DEBUG] QUERY OK source="tms_terminals" db=42.4ms idle=4.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:18:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:18:21.913] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:18:21.916] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=44.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:1184 [2026-08-19 08:18:21.941] [DEBUG] QUERY OK source="tms_terminals" db=24.6ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:18:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:18:21.943] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.6ms idle=26.1ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:18:22.043] [DEBUG] QUERY OK db=98.8ms idle=2.9ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["1978a548-a9b6-4d18-b70b-7824ee21dafd", 33, "2026-08-19T08:18:21Z", ~N[2026-08-19 08:18:21], ~N[2026-08-19 08:18:21]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:18:22.046] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73255, oid: "1978a548-a9b6-4d18-b70b-7824ee21dafd", upload_time: "2026-08-19T08:18:21Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:21], updated_at: ~N[2026-08-19 08:18:21]} [2026-08-19 08:18:22.046] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:18:21Z", "value" => "morefun"} [2026-08-19 08:18:22.112] [DEBUG] QUERY OK db=64.5ms queue=0.1ms idle=103.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "morefun", "vendor", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737659, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.113] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:18:21Z", "value" => "kiosk_launcher"} [2026-08-19 08:18:22.177] [DEBUG] QUERY OK db=63.8ms idle=70.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "kiosk_launcher", "model", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.181] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737663, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.181] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:18:21Z", "value" => "1.0"} [2026-08-19 08:18:22.292] [DEBUG] QUERY OK db=110.0ms queue=0.2ms idle=69.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "1.0", "app_version", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.293] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737666, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.293] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:18:21Z", "value" => "13"} [2026-08-19 08:18:22.386] [DEBUG] QUERY OK db=92.0ms idle=116.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "13", "android_version", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.388] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737669, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.388] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:18:21Z", "value" => "1037"} [2026-08-19 08:18:22.444] [DEBUG] QUERY OK db=55.7ms queue=0.2ms idle=96.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "1037", "ram_free_mb", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.447] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737673, itemkey: "ram_free_mb", value: "1037", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.447] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:18:21Z", "value" => "WIFI"} [2026-08-19 08:18:22.479] [DEBUG] QUERY OK db=31.3ms idle=62.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "WIFI", "network_type", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.482] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737676, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.482] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:18:21Z", "value" => "true"} [2026-08-19 08:18:22.552] [DEBUG] QUERY OK db=69.4ms idle=38.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "true", "kiosk_active", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.555] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737679, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.555] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:18:21Z", "value" => ""} [2026-08-19 08:18:22.610] [DEBUG] QUERY OK db=53.8ms queue=0.2ms idle=76.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:18:21Z", "sim_operator", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.613] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737681, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.613] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"} [2026-08-19 08:18:22.679] [DEBUG] QUERY OK db=65.4ms queue=0.1ms idle=61.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "UNKNOWN", "sim_number", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.683] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737685, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.683] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"} [2026-08-19 08:18:22.747] [DEBUG] QUERY OK db=63.5ms idle=74.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "UNKNOWN", "sim_iccid", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.750] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737688, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.750] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"} [2026-08-19 08:18:22.813] [DEBUG] QUERY OK db=62.5ms idle=71.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "UNKNOWN", "sim_imsi", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.817] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737692, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.817] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"} [2026-08-19 08:18:22.887] [DEBUG] QUERY OK db=69.4ms idle=70.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "UNKNOWN", "sim_iccid2", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.895] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737695, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.896] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:18:21Z", "value" => "UNKNOWN"} [2026-08-19 08:18:22.971] [DEBUG] QUERY OK db=75.1ms idle=69.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "UNKNOWN", "sim_imsi2", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:22.979] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737698, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:22.979] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:18:21Z", "value" => "6"} [2026-08-19 08:18:23.064] [DEBUG] QUERY OK db=83.7ms idle=92.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "6", "data_usage_mb", 73255, ~N[2026-08-19 08:18:22], ~N[2026-08-19 08:18:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:23.066] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737701, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:22], updated_at: ~N[2026-08-19 08:18:22]}} [2026-08-19 08:18:23.066] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:18:21Z", "value" => "0"} [2026-08-19 08:18:23.171] [DEBUG] QUERY OK db=104.5ms idle=95.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "0", "mobile_data_mb", 73255, ~N[2026-08-19 08:18:23], ~N[2026-08-19 08:18:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:23.173] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737703, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:23], updated_at: ~N[2026-08-19 08:18:23]}} [2026-08-19 08:18:23.174] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:18:21Z", "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), 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), Scanne" <> ...} [2026-08-19 08:18:23.263] [DEBUG] QUERY OK db=88.6ms queue=0.3ms idle=110.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:18:21Z", "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), 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), Scanne" <> ..., "installed_apps", 73255, ~N[2026-08-19 08:18:23], ~N[2026-08-19 08:18:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:18:23.265] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737704, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:18:21Z", message: nil, status_log_id: 73255, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:18:23], updated_at: ~N[2026-08-19 08:18:23]}} [2026-08-19 08:19:21.359] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:19:21.360] [INFO ] Incoming JSON payload: {"oid":"70dba9b7-9504-4687-87a4-bbb4129298f1","sn":"98251226730001","uploadTime":"2026-08-19T08:19:20Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"ram_free_mb","value":"1042","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:19:20Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:19:20Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:19:21.366] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "70dba9b7-9504-4687-87a4-bbb4129298f1", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:19:20Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:19:20Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:19:20Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:19:20Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:19:20Z", "value" => "1042"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:19:20Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:19:20Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:19:20Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:19:20Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:19:20Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:19:20Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:19:20Z", "vendor" => "morefun"} [2026-08-19 08:19:21.366] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:19:21.366] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:19:21.366] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:19:21.367] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=1359.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-08-19 08:19:21.372] [DEBUG] QUERY OK source="parameter_templates" db=3.8ms idle=356.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-08-19 08:19:21.372] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:19:21.377] [DEBUG] QUERY OK source="tms_terminals" db=4.5ms 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` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:19:21.378] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:19:21.438] [DEBUG] QUERY OK source="tms_terminals" db=59.4ms idle=6.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:19:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:19:21.438] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:19:21.440] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=0.2ms idle=62.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:1184 [2026-08-19 08:19:21.478] [DEBUG] QUERY OK source="tms_terminals" db=37.4ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:19:21], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:19:21.480] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.0ms idle=38.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:19:21.566] [DEBUG] QUERY OK db=85.4ms idle=3.0ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["70dba9b7-9504-4687-87a4-bbb4129298f1", 33, "2026-08-19T08:19:20Z", ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:19:21.568] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73258, oid: "70dba9b7-9504-4687-87a4-bbb4129298f1", upload_time: "2026-08-19T08:19:20Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]} [2026-08-19 08:19:21.568] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:19:20Z", "value" => "morefun"} [2026-08-19 08:19:21.636] [DEBUG] QUERY OK db=67.8ms idle=87.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "morefun", "vendor", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:21.639] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737707, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:21.639] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:19:20Z", "value" => "kiosk_launcher"} [2026-08-19 08:19:21.706] [DEBUG] QUERY OK db=65.3ms queue=0.2ms idle=74.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "kiosk_launcher", "model", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:21.708] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737710, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:21.708] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:19:20Z", "value" => "1.0"} [2026-08-19 08:19:21.767] [DEBUG] QUERY OK db=57.2ms idle=72.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "1.0", "app_version", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:21.772] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737714, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:21.772] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:19:20Z", "value" => "13"} [2026-08-19 08:19:21.830] [DEBUG] QUERY OK db=57.1ms queue=0.2ms idle=66.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "13", "android_version", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:21.833] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737717, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:21.833] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:19:20Z", "value" => "1042"} [2026-08-19 08:19:21.877] [DEBUG] QUERY OK db=43.2ms idle=67.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "1042", "ram_free_mb", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:21.882] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737720, itemkey: "ram_free_mb", value: "1042", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:21.882] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:19:20Z", "value" => "WIFI"} [2026-08-19 08:19:21.930] [DEBUG] QUERY OK db=46.7ms idle=52.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "WIFI", "network_type", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:21.933] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737723, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:21.934] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:19:20Z", "value" => "true"} [2026-08-19 08:19:22.017] [DEBUG] QUERY OK db=81.4ms idle=58.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "true", "kiosk_active", 73258, ~N[2026-08-19 08:19:21], ~N[2026-08-19 08:19:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.021] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737725, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:21], updated_at: ~N[2026-08-19 08:19:21]}} [2026-08-19 08:19:22.021] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:19:20Z", "value" => ""} [2026-08-19 08:19:22.111] [DEBUG] QUERY OK db=88.1ms queue=0.1ms idle=8.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:19:20Z", "sim_operator", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737729, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.114] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"} [2026-08-19 08:19:22.164] [DEBUG] QUERY OK db=50.0ms idle=97.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "UNKNOWN", "sim_number", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.166] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737732, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.166] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"} [2026-08-19 08:19:22.259] [DEBUG] QUERY OK db=92.4ms queue=0.1ms idle=56.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "UNKNOWN", "sim_iccid", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.262] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737735, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.262] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"} [2026-08-19 08:19:22.322] [DEBUG] QUERY OK db=60.0ms idle=98.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "UNKNOWN", "sim_imsi", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.325] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737738, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.325] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"} [2026-08-19 08:19:22.365] [DEBUG] QUERY OK db=40.1ms idle=66.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "UNKNOWN", "sim_iccid2", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.367] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737741, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.367] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:19:20Z", "value" => "UNKNOWN"} [2026-08-19 08:19:22.442] [DEBUG] QUERY OK db=74.7ms queue=0.2ms idle=44.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "UNKNOWN", "sim_imsi2", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.446] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737744, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.447] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:19:20Z", "value" => "6"} [2026-08-19 08:19:22.551] [DEBUG] QUERY OK db=102.5ms queue=1.0ms idle=81.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "6", "data_usage_mb", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.555] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737747, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.555] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:19:20Z", "value" => "0"} [2026-08-19 08:19:22.596] [DEBUG] QUERY OK db=39.8ms queue=0.1ms idle=113.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "0", "mobile_data_mb", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.598] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737750, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.598] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:19:20Z", "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), 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), Scanne" <> ...} [2026-08-19 08:19:22.640] [DEBUG] QUERY OK db=40.1ms idle=48.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:19:20Z", "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), 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), Scanne" <> ..., "installed_apps", 73258, ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:22.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737752, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:19:20Z", message: nil, status_log_id: 73258, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:22], updated_at: ~N[2026-08-19 08:19:22]}} [2026-08-19 08:19:22.795] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:19:22.795] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"-3406106-01-21T13:13:44Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-3406106-01-21T13:13:44Z","message":"Device Connected"}]} [2026-08-19 08:19:22.796] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-3406106-01-21T13:13:44Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "-3406106-01-21T13:13:44Z", "vendor" => "MoreFun"} [2026-08-19 08:19:22.796] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:19:22.796] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:19:22.797] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:19:22.799] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms queue=1.1ms idle=201.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:19:22.801] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=159.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:19:22.802] [DEBUG] QUERY OK source="parameter_template_values" db=0.8ms queue=0.2ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:19:22.875] [DEBUG] QUERY OK db=68.7ms idle=5.6ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 6434, ~U[2026-08-19 08:19:22Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:19:22.875] [INFO ] AutoPushService: Created push log 45784 for parameters (template: 7) [2026-08-19 08:19:22.876] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 6434, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:19:22.876] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:19:22.877] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:19:22.954] [DEBUG] QUERY OK db=77.0ms idle=75.2ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 836, ~U[2026-08-19 08:19:22Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:19:22.955] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:19:22.955] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 836, "retry_count" => "3"} [2026-08-19 08:19:22.955] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:19:22.955] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:19:22.957] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=80.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:19:22.957] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:19:22.958] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms 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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:19:22.958] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:19:22.966] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:19:22.966] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:19:22.967] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:19:23.025] [DEBUG] QUERY OK db=55.8ms idle=11.7ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 6498, ~U[2026-08-19 08:19:22Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:19:22], ~N[2026-08-19 08:19:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:19:23.025] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:19:23.025] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 6498, "retry_count" => "3"} [2026-08-19 08:19:23.025] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:19:23.025] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:19:23.025] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:19:23.026] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=6.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:19:23.027] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:19:23.096] [DEBUG] QUERY OK source="tms_terminals" db=68.3ms idle=3.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:19:23], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:19:23.096] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:19:23.098] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=70.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:19:23.129] [DEBUG] QUERY OK source="tms_terminals" db=28.9ms queue=0.1ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:19:23], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:19:23.130] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms idle=32.0ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:19:23.190] [DEBUG] QUERY OK db=59.2ms idle=2.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "-3406106-01-21T13:13:44Z", ~N[2026-08-19 08:19:23], ~N[2026-08-19 08:19:23]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:19:23.192] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73261, oid: "org-id-placeholder", upload_time: "-3406106-01-21T13:13:44Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:23], updated_at: ~N[2026-08-19 08:19:23]} [2026-08-19 08:19:23.193] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-3406106-01-21T13:13:44Z", "value" => "online"} [2026-08-19 08:19:23.317] [DEBUG] QUERY OK db=123.9ms queue=0.2ms idle=62.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-3406106-01-21T13:13:44Z", "online", "status", 73261, ~N[2026-08-19 08:19:23], ~N[2026-08-19 08:19:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:19:23.320] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737755, itemkey: "status", value: "online", timestamp: "-3406106-01-21T13:13:44Z", message: "Device Connected", status_log_id: 73261, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:19:23], updated_at: ~N[2026-08-19 08:19:23]}} [2026-08-19 08:19:23.321] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:19:23.321] [WARN ] Unexpected async result [2026-08-19 08:19:23.321] [WARN ] Unexpected async result [2026-08-19 08:19:23.321] [WARN ] Unexpected async result [2026-08-19 08:22:25.257] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:22:25.257] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:22:23Z","org.device":[{"itemkey":"battery","value":82,"timestamp":"2026-08-19T12:22:23Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:22:23Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:22:23Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:22:23Z","message":""}]} [2026-08-19 08:22:25.257] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:22:23Z", "value" => 82}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:22:23Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:22:23Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:22:23Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:22:23Z"} [2026-08-19 08:22:25.257] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:22:25.258] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=475.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:22:25.259] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:22:25.329] [DEBUG] QUERY OK source="tms_terminals" db=69.4ms idle=288.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:22:25], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:22:25.331] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=71.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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:22:25.369] [DEBUG] QUERY OK source="tms_terminals" db=37.4ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:22:25], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:22:25.370] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=38.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:22:25.436] [DEBUG] QUERY OK db=64.9ms idle=1.9ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:22:23Z", ~N[2026-08-19 08:22:25], ~N[2026-08-19 08:22:25]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:22:25.440] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73264, oid: "org-id-placeholder", upload_time: "2026-08-19T12:22:23Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:22:25], updated_at: ~N[2026-08-19 08:22:25]} [2026-08-19 08:22:25.440] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:22:23Z", "value" => 82} [2026-08-19 08:22:25.489] [DEBUG] QUERY OK db=49.2ms idle=69.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:22:23Z", "82", "battery", 73264, ~N[2026-08-19 08:22:25], ~N[2026-08-19 08:22:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:22:25.492] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737758, itemkey: "battery", value: "82", timestamp: "2026-08-19T12:22:23Z", message: nil, status_log_id: 73264, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:22:25], updated_at: ~N[2026-08-19 08:22:25]}} [2026-08-19 08:22:25.492] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:22:23Z", "value" => 50} [2026-08-19 08:22:25.533] [DEBUG] QUERY OK db=39.5ms idle=56.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:22:23Z", "50", "memory", 73264, ~N[2026-08-19 08:22:25], ~N[2026-08-19 08:22:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:22:25.536] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737761, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:22:23Z", message: "Normal", status_log_id: 73264, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:22:25], updated_at: ~N[2026-08-19 08:22:25]}} [2026-08-19 08:22:25.537] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:22:23Z", "value" => 50} [2026-08-19 08:22:25.576] [DEBUG] QUERY OK db=39.1ms queue=0.1ms idle=47.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:22:23Z", "50", "cpu", 73264, ~N[2026-08-19 08:22:25], ~N[2026-08-19 08:22:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:22:25.580] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737764, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:22:23Z", message: nil, status_log_id: 73264, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:22:25], updated_at: ~N[2026-08-19 08:22:25]}} [2026-08-19 08:22:25.580] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:22:23Z", "value" => "online"} [2026-08-19 08:22:25.627] [DEBUG] QUERY OK db=46.0ms idle=48.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:22:23Z", "online", "network", 73264, ~N[2026-08-19 08:22:25], ~N[2026-08-19 08:22:25]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:22:25.630] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737767, itemkey: "network", value: "online", timestamp: "2026-08-19T12:22:23Z", message: nil, status_log_id: 73264, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:22:25], updated_at: ~N[2026-08-19 08:22:25]}} [2026-08-19 08:22:25.630] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:22:58.441] [INFO ] Running offline device check... [2026-08-19 08:22:58.441] [INFO ] Starting offline device check... [2026-08-19 08:22:58.442] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=566.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:1234 [2026-08-19 08:22:58.449] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=431.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:22:58.455] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.456] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.459] [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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.459] [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:1249 [2026-08-19 08:22:58.460] [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:1249 [2026-08-19 08:22:58.461] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.461] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.463] [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:1249 [2026-08-19 08:22:58.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.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:1249 [2026-08-19 08:22:58.471] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.484] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms queue=0.2ms 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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.493] [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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.493] [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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.511] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.512] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms 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 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.513] [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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.515] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.516] [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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.518] [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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.556] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=37.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 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.557] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=38.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:22:58.557] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.563] [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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.564] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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:1249 [2026-08-19 08:22:58.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.568] [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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.569] [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:1249 [2026-08-19 08:22:58.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.574] [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 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.575] [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:1249 [2026-08-19 08:22:58.576] [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:1249 [2026-08-19 08:22:58.576] [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:1249 [2026-08-19 08:22:58.579] [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 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.579] [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:1249 [2026-08-19 08:22:58.580] [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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.582] [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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.583] [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 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.583] [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 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.584] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.585] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.586] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.587] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.587] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.589] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.590] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.590] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.591] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.592] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:22:58.592] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:22:58.592] [INFO ] Offline device check completed successfully [2026-08-19 08:23:35.480] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:23:35.480] [INFO ] Incoming JSON payload: {"oid":"173aaa67-7625-43aa-bdc9-fa09ee974d20","sn":"98251226730001","uploadTime":"2026-08-19T08:23:34Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"ram_free_mb","value":"1043","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:23:34Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:23:34Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:23:35.481] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "173aaa67-7625-43aa-bdc9-fa09ee974d20", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:23:34Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:23:34Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:23:34Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:23:34Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:23:34Z", "value" => "1043"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:23:34Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:23:34Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:23:34Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:23:34Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:23:34Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:23:34Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:23:34Z", "vendor" => "morefun"} [2026-08-19 08:23:35.481] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:23:35.481] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:23:35.481] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:23:35.484] [DEBUG] QUERY OK source="parameter_templates" db=2.0ms idle=1457.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-08-19 08:23:35.486] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.9ms idle=457.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-08-19 08:23:35.487] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:23:35.489] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:23:35.489] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:23:36.136] [DEBUG] QUERY OK source="tms_terminals" db=647.1ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:23:35], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:23:36.142] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:23:36.147] [DEBUG] QUERY OK source="tms_terminals" db=5.3ms idle=111.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:1184 [2026-08-19 08:23:36.245] [DEBUG] QUERY OK source="tms_terminals" db=96.9ms idle=11.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:23:36], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:23:36.246] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms queue=0.2ms idle=97.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:23:36.312] [DEBUG] QUERY OK db=66.2ms idle=1.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["173aaa67-7625-43aa-bdc9-fa09ee974d20", 33, "2026-08-19T08:23:34Z", ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:23:36.314] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73266, oid: "173aaa67-7625-43aa-bdc9-fa09ee974d20", upload_time: "2026-08-19T08:23:34Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]} [2026-08-19 08:23:36.314] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:23:34Z", "value" => "morefun"} [2026-08-19 08:23:36.374] [DEBUG] QUERY OK db=59.4ms idle=68.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "morefun", "vendor", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.379] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737770, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.380] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:23:34Z", "value" => "kiosk_launcher"} [2026-08-19 08:23:36.453] [DEBUG] QUERY OK db=69.5ms queue=3.6ms idle=67.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "kiosk_launcher", "model", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.460] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737773, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.460] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:23:34Z", "value" => "1.0"} [2026-08-19 08:23:36.503] [DEBUG] QUERY OK db=41.4ms queue=0.9ms idle=86.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "1.0", "app_version", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.507] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737776, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.507] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:23:34Z", "value" => "13"} [2026-08-19 08:23:36.587] [DEBUG] QUERY OK db=79.7ms idle=53.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "13", "android_version", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.593] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737779, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.594] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:23:34Z", "value" => "1043"} [2026-08-19 08:23:36.680] [DEBUG] QUERY OK db=85.9ms idle=90.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "1043", "ram_free_mb", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.691] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737782, itemkey: "ram_free_mb", value: "1043", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.691] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:23:34Z", "value" => "WIFI"} [2026-08-19 08:23:36.758] [DEBUG] QUERY OK db=66.2ms idle=104.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "WIFI", "network_type", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.765] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737785, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.765] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:23:34Z", "value" => "true"} [2026-08-19 08:23:36.836] [DEBUG] QUERY OK db=70.9ms idle=85.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "true", "kiosk_active", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.839] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737788, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.839] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:23:34Z", "value" => ""} [2026-08-19 08:23:36.922] [DEBUG] QUERY OK db=82.6ms queue=0.2ms idle=81.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:23:34Z", "sim_operator", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:36.925] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737791, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:36.925] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"} [2026-08-19 08:23:37.018] [DEBUG] QUERY OK db=92.8ms queue=0.3ms idle=88.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "UNKNOWN", "sim_number", 73266, ~N[2026-08-19 08:23:36], ~N[2026-08-19 08:23:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.021] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737795, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:36], updated_at: ~N[2026-08-19 08:23:36]}} [2026-08-19 08:23:37.021] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"} [2026-08-19 08:23:37.078] [DEBUG] QUERY OK db=57.1ms idle=99.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "UNKNOWN", "sim_iccid", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.082] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737798, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:23:37.082] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"} [2026-08-19 08:23:37.140] [DEBUG] QUERY OK db=56.6ms idle=47.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "UNKNOWN", "sim_imsi", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737802, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:23:37.142] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"} [2026-08-19 08:23:37.225] [DEBUG] QUERY OK db=81.6ms queue=0.5ms idle=64.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "UNKNOWN", "sim_iccid2", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.227] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737805, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:23:37.228] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:23:34Z", "value" => "UNKNOWN"} [2026-08-19 08:23:37.266] [DEBUG] QUERY OK db=37.8ms queue=0.4ms idle=88.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "UNKNOWN", "sim_imsi2", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.271] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737808, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:23:37.272] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:23:34Z", "value" => "6"} [2026-08-19 08:23:37.352] [DEBUG] QUERY OK db=78.5ms queue=0.8ms idle=47.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "6", "data_usage_mb", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.356] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737811, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:23:37.357] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:23:34Z", "value" => "0"} [2026-08-19 08:23:37.456] [DEBUG] QUERY OK db=97.6ms queue=0.6ms idle=91.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "0", "mobile_data_mb", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.457] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737814, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:23:37.458] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:23:34Z", "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), 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), Scanne" <> ...} [2026-08-19 08:23:37.503] [DEBUG] QUERY OK db=43.4ms queue=0.7ms idle=106.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:23:34Z", "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), 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), Scanne" <> ..., "installed_apps", 73266, ~N[2026-08-19 08:23:37], ~N[2026-08-19 08:23:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:23:37.507] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737815, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:23:34Z", message: nil, status_log_id: 73266, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:23:37], updated_at: ~N[2026-08-19 08:23:37]}} [2026-08-19 08:24:41.050] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:24:41.050] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"5742676-12-02T01:24:22Z","org.device":[{"itemkey":"status","value":"online","timestamp":"5742676-12-02T01:24:22Z","message":"Device Connected"}]} [2026-08-19 08:24:41.050] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5742676-12-02T01:24:22Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "5742676-12-02T01:24:22Z", "vendor" => "MoreFun"} [2026-08-19 08:24:41.050] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:24:41.050] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:24:41.050] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:24:41.051] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=730.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:24:41.053] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.2ms idle=75.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:24:41.056] [DEBUG] QUERY OK source="parameter_template_values" db=1.8ms decode=0.2ms queue=0.2ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:24:41.079] [DEBUG] QUERY OK db=20.6ms queue=0.6ms idle=4.9ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 6818, ~U[2026-08-19 08:24:41Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:24:41], ~N[2026-08-19 08:24:41]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:24:41.079] [INFO ] AutoPushService: Created push log 45792 for parameters (template: 7) [2026-08-19 08:24:41.079] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 6818, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:24:41.081] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:24:41.081] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:24:41.120] [DEBUG] QUERY OK db=36.2ms queue=0.1ms idle=28.9ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 6882, ~U[2026-08-19 08:24:41Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:24:41], ~N[2026-08-19 08:24:41]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:24:41.120] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:24:41.120] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 6882, "retry_count" => "3"} [2026-08-19 08:24:41.120] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:24:41.121] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:24:41.126] [DEBUG] QUERY OK source="config_file_versions" db=4.3ms idle=42.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:24:41.126] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:24:41.127] [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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:24:41.128] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:24:41.133] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:24:41.133] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:24:41.133] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:24:41.193] [DEBUG] QUERY OK db=58.2ms idle=8.8ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 2691, ~U[2026-08-19 08:24:41Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:24:41], ~N[2026-08-19 08:24:41]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:24:41.193] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:24:41.193] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 2691, "retry_count" => "3"} [2026-08-19 08:24:41.193] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:24:41.193] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:24:41.193] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:24:41.196] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=66.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:24:41.196] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:24:41.259] [DEBUG] QUERY OK source="tms_terminals" db=60.3ms idle=6.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:24:41], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:24:41.260] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:24:41.266] [DEBUG] QUERY OK source="tms_terminals" db=6.4ms idle=64.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:24:41.305] [DEBUG] QUERY OK source="tms_terminals" db=38.0ms queue=0.1ms idle=7.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:24:41], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:24:41.309] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=2.7ms queue=0.5ms idle=38.9ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:24:41.362] [DEBUG] QUERY OK db=50.3ms queue=2.2ms idle=4.1ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "5742676-12-02T01:24:22Z", ~N[2026-08-19 08:24:41], ~N[2026-08-19 08:24:41]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:24:41.370] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73269, oid: "org-id-placeholder", upload_time: "5742676-12-02T01:24:22Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:24:41], updated_at: ~N[2026-08-19 08:24:41]} [2026-08-19 08:24:41.370] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5742676-12-02T01:24:22Z", "value" => "online"} [2026-08-19 08:24:41.435] [DEBUG] QUERY OK db=64.7ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "5742676-12-02T01:24:22Z", "online", "status", 73269, ~N[2026-08-19 08:24:41], ~N[2026-08-19 08:24:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:24:41.445] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737817, itemkey: "status", value: "online", timestamp: "5742676-12-02T01:24:22Z", message: "Device Connected", status_log_id: 73269, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:24:41], updated_at: ~N[2026-08-19 08:24:41]}} [2026-08-19 08:24:41.445] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:24:41.445] [WARN ] Unexpected async result [2026-08-19 08:24:41.445] [WARN ] Unexpected async result [2026-08-19 08:24:41.446] [WARN ] Unexpected async result [2026-08-19 08:26:14.802] [INFO ] Received status update for terminal 98251226730002 [2026-08-19 08:26:14.802] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-08-19T08:25:43Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-08-19T08:25:43Z","value":"73"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-08-19T08:25:43Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-08-19T08:25:43Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-08-19T08:25:43Z","value":""},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-08-19T08:25:43Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-08-19T08:25:43Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-08-19T08:25:43Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-08-19T08:25:43Z","vendor":"MoreFun"} [2026-08-19 08:26:14.803] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-08-19T08:25:43Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-08-19T08:25:43Z", "value" => "73"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-08-19T08:25:43Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-08-19T08:25:43Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-08-19T08:25:43Z", "value" => ""}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-08-19T08:25:43Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-08-19T08:25:43Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-08-19T08:25:43Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-08-19T08:25:43Z", "vendor" => "MoreFun"} [2026-08-19 08:26:14.803] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: ""} [2026-08-19 08:26:14.803] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-08-19 08:26:14.803] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-08-19 08:26:14.805] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=1105.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-08-19 08:26:14.806] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=102.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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:26:14.813] [DEBUG] QUERY OK source="parameter_template_values" db=6.7ms 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-08-19 08:26:14.821] [DEBUG] QUERY OK source="parameter_definitions" db=2.7ms queue=4.5ms idle=7.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-08-19 08:26:14.824] [DEBUG] QUERY OK source="pos_terminal" db=0.6ms idle=10.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-08-19 08:26:14.863] [DEBUG] QUERY OK source="pos_merchant" db=38.2ms queue=0.7ms idle=3.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [206] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-08-19 08:26:14.868] [DEBUG] QUERY OK db=0.6ms queue=2.8ms idle=18.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 ["510159090000000"] [2026-08-19 08:26:14.868] [ERROR] ParamsZipBuilder: No merchant info found for merchantid=510159090000000 [2026-08-19 08:26:14.868] [ERROR] AutoPushService: ParamsZipBuilder failed for 98251226730002: "Could not fetch merchant info for merchantid 510159090000000" [2026-08-19 08:26:14.869] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=44.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-08-19 08:26:14.880] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-08-19 08:26:14.926] [DEBUG] QUERY OK db=40.0ms queue=1.7ms idle=21.0ms 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", "3d0b6f83a37ab7863a7d7cf970f0ee7a04d22a6a10b351d3bbc4d64cb9ce6ac1", 7170, 17947, ~U[2026-08-19 08:26:14Z], "priv/ota/98251226730002/l3config.zip", 13, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-08-19 08:26:14], ~N[2026-08-19 08:26:14]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-08-19 08:26:14.926] [INFO ] AutoPushService: Created push log 45801 for MF919 l3config.zip (version: 1.0.1) [2026-08-19 08:26:14.929] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4017/ota/98251226730002/l3config.zip", "requestId" => 7170, "type" => "tms_command", "version" => "1.0.1"} [2026-08-19 08:26:14.929] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-08-19 08:26:14.929] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-08-19 08:26:14.938] [DEBUG] QUERY OK source="config_file_versions" db=8.6ms idle=60.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-08-19 08:26:14.938] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-08-19 08:26:14.941] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=14.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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:26:14.941] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:26:14.946] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:26:14.946] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:26:14.947] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:26:14.951] [DEBUG] QUERY OK source="config_file_versions" db=3.1ms idle=9.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-08-19 08:26:14.952] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-08-19 08:26:14.952] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-08-19 08:26:14.955] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=10.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` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:26:14.958] [INFO ] Terminal updated: 98251226730002 [2026-08-19 08:26:15.004] [DEBUG] QUERY OK source="tms_terminals" db=44.6ms idle=8.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:26:14], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:26:15.006] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms queue=0.1ms idle=49.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.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-08-19 08:26:15.006] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-08-19 08:26:15.007] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms 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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:26:15.058] [DEBUG] QUERY OK source="tms_terminals" db=50.2ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:26:15], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:26:15.060] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.0ms idle=51.0ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730002"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:26:15.091] [DEBUG] QUERY OK db=30.3ms queue=0.4ms idle=1.7ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["organization_id", 13, "2026-08-19T08:25:43Z", ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:26:15.092] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73273, oid: "organization_id", upload_time: "2026-08-19T08:25:43Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]} [2026-08-19 08:26:15.093] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-08-19T08:25:43Z", "value" => "online"} [2026-08-19 08:26:15.138] [DEBUG] QUERY OK db=45.1ms 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-08-19T08:25:43Z", "online", "status", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.142] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737821, itemkey: "status", value: "online", timestamp: "2026-08-19T08:25:43Z", message: "Terminal status update", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.142] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-08-19 08:26:15.143] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-08-19T08:25:43Z", "value" => "73"} [2026-08-19 08:26:15.170] [DEBUG] QUERY OK db=26.5ms idle=52.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-08-19T08:25:43Z", "73", "battery", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.173] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737824, itemkey: "battery", value: "73", timestamp: "2026-08-19T08:25:43Z", message: "Battery level", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.174] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-08-19T08:25:43Z", "value" => "online"} [2026-08-19 08:26:15.232] [DEBUG] QUERY OK db=57.3ms queue=0.1ms idle=36.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-08-19T08:25:43Z", "online", "network", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.234] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737827, itemkey: "network", value: "online", timestamp: "2026-08-19T08:25:43Z", message: "Network connectivity", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.235] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-08-19 08:26:15.235] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-08-19T08:25:43Z", "value" => "0"} [2026-08-19 08:26:15.267] [DEBUG] QUERY OK db=30.1ms queue=0.4ms idle=67.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-08-19T08:25:43Z", "0", "cpu", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.269] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737830, itemkey: "cpu", value: "0", timestamp: "2026-08-19T08:25:43Z", message: "CPU usage percentage", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.270] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-08-19T08:25:43Z", "value" => ""} [2026-08-19 08:26:15.315] [DEBUG] QUERY OK db=41.0ms queue=4.3ms idle=37.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current parameters version", "2026-08-19T08:25:43Z", "parameter_config", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.324] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737833, itemkey: "parameter_config", value: nil, timestamp: "2026-08-19T08:25:43Z", message: "Current parameters version", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.324] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-08-19T08:25:43Z", "value" => "1.0.1"} [2026-08-19 08:26:15.373] [DEBUG] QUERY OK db=48.1ms queue=0.4ms idle=57.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-08-19T08:25:43Z", "1.0.1", "emv_config", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.376] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737836, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-08-19T08:25:43Z", message: "Current EMV config version", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.377] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-08-19T08:25:43Z", "value" => ""} [2026-08-19 08:26:15.450] [DEBUG] QUERY OK db=73.2ms idle=61.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-08-19T08:25:43Z", "keys_config", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.455] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737838, itemkey: "keys_config", value: nil, timestamp: "2026-08-19T08:25:43Z", message: "Current keys config version", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.455] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-08-19T08:25:43Z", "value" => ""} [2026-08-19 08:26:15.530] [DEBUG] QUERY OK db=69.3ms queue=5.1ms idle=82.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-08-19T08:25:43Z", "application", 73273, ~N[2026-08-19 08:26:15], ~N[2026-08-19 08:26:15]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:15.536] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737841, itemkey: "application", value: nil, timestamp: "2026-08-19T08:25:43Z", message: "Current application version", status_log_id: 73273, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:15], updated_at: ~N[2026-08-19 08:26:15]}} [2026-08-19 08:26:15.536] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"7170","status":"success","timestamp":1787127943677,"type":"tms_response"} [2026-08-19 08:26:15.536] [INFO ] Processing file download response for device 98251226730002, request_id: 7170 [2026-08-19 08:26:15.539] [DEBUG] QUERY OK source="file_download_logs" db=2.1ms queue=0.1ms idle=86.1ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["7170"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:26:15.539] [INFO ] No file download log for request_id 7170; response not attached to a push [2026-08-19 08:26:15.541] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:26:15.539322Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "7170", "status" => "success", "timestamp" => 1787127943677, "type" => "tms_response"}, request_id: "7170", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:26:15.541] [WARN ] Unexpected async result [2026-08-19 08:26:15.571] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"16866","status":"success","timestamp":1787127943892,"type":"tms_response"} [2026-08-19 08:26:15.571] [INFO ] Processing file download response for device 98251226730002, request_id: 16866 [2026-08-19 08:26:15.573] [DEBUG] QUERY OK source="file_download_logs" db=1.0ms idle=41.6ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["16866"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:26:15.573] [INFO ] No file download log for request_id 16866; response not attached to a push [2026-08-19 08:26:15.573] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:26:15.573527Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "16866", "status" => "success", "timestamp" => 1787127943892, "type" => "tms_response"}, request_id: "16866", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:26:16.032] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"84260","status":"success","timestamp":1787127944366,"type":"tms_response"} [2026-08-19 08:26:16.033] [INFO ] Processing file download response for device 98251226730002, request_id: 84260 [2026-08-19 08:26:16.036] [DEBUG] QUERY OK source="file_download_logs" db=1.5ms idle=461.3ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["84260"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:26:16.036] [INFO ] No file download log for request_id 84260; response not attached to a push [2026-08-19 08:26:16.036] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:26:16.036466Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "84260", "status" => "success", "timestamp" => 1787127944366, "type" => "tms_response"}, request_id: "84260", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:26:30.709] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:26:30.711] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"-948103-11-26T05:36:52Z","org.device":[{"itemkey":"status","value":"offline","timestamp":"-948103-11-26T05:36:52Z","message":"Connection reset - reconnecting"}]} [2026-08-19 08:26:30.711] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Connection reset - reconnecting", "timestamp" => "-948103-11-26T05:36:52Z", "value" => "offline"}], "sn" => "61250415798001", "uploadTime" => "-948103-11-26T05:36:52Z"} [2026-08-19 08:26:30.711] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:26:30.713] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=964.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:26:30.714] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:26:30.742] [DEBUG] QUERY OK source="tms_terminals" db=27.7ms idle=718.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:26:30], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:26:30.745] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms 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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:26:30.793] [DEBUG] QUERY OK source="tms_terminals" db=47.3ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:26:30], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:26:30.795] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.4ms idle=44.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:26:30.859] [DEBUG] QUERY OK db=63.3ms idle=2.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "-948103-11-26T05:36:52Z", ~N[2026-08-19 08:26:30], ~N[2026-08-19 08:26:30]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:26:30.864] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73276, oid: "org-id-placeholder", upload_time: "-948103-11-26T05:36:52Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:30], updated_at: ~N[2026-08-19 08:26:30]} [2026-08-19 08:26:30.864] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Connection reset - reconnecting", "timestamp" => "-948103-11-26T05:36:52Z", "value" => "offline"} [2026-08-19 08:26:30.911] [DEBUG] QUERY OK db=45.7ms idle=69.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Connection reset - reconnecting", "-948103-11-26T05:36:52Z", "offline", "status", 73276, ~N[2026-08-19 08:26:30], ~N[2026-08-19 08:26:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:30.913] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737845, itemkey: "status", value: "offline", timestamp: "-948103-11-26T05:36:52Z", message: "Connection reset - reconnecting", status_log_id: 73276, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:30], updated_at: ~N[2026-08-19 08:26:30]}} [2026-08-19 08:26:30.913] [INFO ] Setting terminal 61250415798001 status to 'offline' from status itemkey [2026-08-19 08:26:30.963] [DEBUG] QUERY OK source="tms_terminals" db=48.6ms idle=55.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["offline", ~N[2026-08-19 08:26:30], 1] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:206 [2026-08-19 08:26:30.968] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms decode=1.0ms queue=2.4ms idle=52.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["offline", ~N[2026-08-19 08:26:30], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:233 [2026-08-19 08:26:34.940] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:26:34.941] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"1094654-04-04T02:31:20Z","org.device":[{"itemkey":"status","value":"online","timestamp":"1094654-04-04T02:31:20Z","message":"Device Connected"}]} [2026-08-19 08:26:34.941] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "1094654-04-04T02:31:20Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "1094654-04-04T02:31:20Z"} [2026-08-19 08:26:34.941] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:26:34.943] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1175.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:26:34.944] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:26:34.996] [DEBUG] QUERY OK source="tms_terminals" db=48.7ms idle=177.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:26:34], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:26:34.999] [DEBUG] QUERY OK source="tms_terminals" db=2.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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:26:35.085] [DEBUG] QUERY OK source="tms_terminals" db=85.4ms idle=3.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:26:34], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:26:35.086] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=86.3ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:26:35.145] [DEBUG] QUERY OK db=58.7ms idle=1.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "1094654-04-04T02:31:20Z", ~N[2026-08-19 08:26:35], ~N[2026-08-19 08:26:35]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:26:35.147] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73278, oid: "org-id-placeholder", upload_time: "1094654-04-04T02:31:20Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:35], updated_at: ~N[2026-08-19 08:26:35]} [2026-08-19 08:26:35.147] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "1094654-04-04T02:31:20Z", "value" => "online"} [2026-08-19 08:26:35.197] [DEBUG] QUERY OK db=49.2ms idle=61.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "1094654-04-04T02:31:20Z", "online", "status", 73278, ~N[2026-08-19 08:26:35], ~N[2026-08-19 08:26:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:26:35.201] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737847, itemkey: "status", value: "online", timestamp: "1094654-04-04T02:31:20Z", message: "Device Connected", status_log_id: 73278, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:26:35], updated_at: ~N[2026-08-19 08:26:35]}} [2026-08-19 08:26:35.202] [INFO ] Setting terminal 61250415798001 status to 'online' from status itemkey [2026-08-19 08:26:35.203] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=57.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:26:35], 1] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:203 [2026-08-19 08:26:35.204] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=6.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:26:35], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:233 [2026-08-19 08:27:10.490] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:27:10.490] [INFO ] Incoming JSON payload: {"oid":"d21c8e60-8f5c-4886-8a27-00845ea257fc","sn":"98251226730001","uploadTime":"2026-08-19T08:27:09Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"ram_free_mb","value":"1046","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:27:09Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:27:09Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:27:10.491] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "d21c8e60-8f5c-4886-8a27-00845ea257fc", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:27:09Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:27:09Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:27:09Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:27:09Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:27:09Z", "value" => "1046"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:27:09Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:27:09Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:27:09Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:27:09Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:27:09Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:27:09Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:27:09Z", "vendor" => "morefun"} [2026-08-19 08:27:10.491] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:27:10.491] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:27:10.491] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:27:10.496] [DEBUG] QUERY OK source="parameter_templates" db=4.4ms idle=621.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-08-19 08:27:10.497] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=495.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-08-19 08:27:10.498] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:27:10.500] [DEBUG] QUERY OK source="tms_terminals" db=0.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:140 [2026-08-19 08:27:10.500] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:27:13.676] [DEBUG] QUERY OK source="tms_terminals" db=3175.9ms idle=3.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:27:10], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:27:13.676] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:27:13.680] [DEBUG] QUERY OK source="tms_terminals" db=3.4ms idle=799.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:1184 [2026-08-19 08:27:13.721] [DEBUG] QUERY OK source="tms_terminals" db=40.5ms idle=4.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:27:13], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:27:13.722] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.8ms idle=42.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:27:13.772] [DEBUG] QUERY OK db=49.6ms idle=1.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["d21c8e60-8f5c-4886-8a27-00845ea257fc", 33, "2026-08-19T08:27:09Z", ~N[2026-08-19 08:27:13], ~N[2026-08-19 08:27:13]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:27:13.775] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73281, oid: "d21c8e60-8f5c-4886-8a27-00845ea257fc", upload_time: "2026-08-19T08:27:09Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:13], updated_at: ~N[2026-08-19 08:27:13]} [2026-08-19 08:27:13.775] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:27:09Z", "value" => "morefun"} [2026-08-19 08:27:13.861] [DEBUG] QUERY OK db=44.9ms queue=41.1ms idle=52.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "morefun", "vendor", 73281, ~N[2026-08-19 08:27:13], ~N[2026-08-19 08:27:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:13.864] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737850, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:13], updated_at: ~N[2026-08-19 08:27:13]}} [2026-08-19 08:27:13.864] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:27:09Z", "value" => "kiosk_launcher"} [2026-08-19 08:27:13.920] [DEBUG] QUERY OK db=54.3ms queue=1.3ms idle=91.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "kiosk_launcher", "model", 73281, ~N[2026-08-19 08:27:13], ~N[2026-08-19 08:27:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:13.923] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737852, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:13], updated_at: ~N[2026-08-19 08:27:13]}} [2026-08-19 08:27:13.925] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:27:09Z", "value" => "1.0"} [2026-08-19 08:27:13.962] [DEBUG] QUERY OK db=35.4ms queue=0.2ms idle=44.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "1.0", "app_version", 73281, ~N[2026-08-19 08:27:13], ~N[2026-08-19 08:27:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:13.964] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737854, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:13], updated_at: ~N[2026-08-19 08:27:13]}} [2026-08-19 08:27:13.964] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:27:09Z", "value" => "13"} [2026-08-19 08:27:14.023] [DEBUG] QUERY OK db=58.5ms idle=44.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "13", "android_version", 73281, ~N[2026-08-19 08:27:13], ~N[2026-08-19 08:27:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.025] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737856, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:13], updated_at: ~N[2026-08-19 08:27:13]}} [2026-08-19 08:27:14.025] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:27:09Z", "value" => "1046"} [2026-08-19 08:27:14.060] [DEBUG] QUERY OK db=33.9ms idle=63.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "1046", "ram_free_mb", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737858, itemkey: "ram_free_mb", value: "1046", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.064] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:27:09Z", "value" => "WIFI"} [2026-08-19 08:27:14.122] [DEBUG] QUERY OK db=58.0ms idle=40.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "WIFI", "network_type", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.124] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737860, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.124] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:27:09Z", "value" => "true"} [2026-08-19 08:27:14.177] [DEBUG] QUERY OK db=52.6ms idle=64.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "true", "kiosk_active", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737862, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.179] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:27:09Z", "value" => ""} [2026-08-19 08:27:14.216] [DEBUG] QUERY OK db=36.7ms queue=0.1ms idle=56.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:27:09Z", "sim_operator", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.217] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737864, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.217] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"} [2026-08-19 08:27:14.261] [DEBUG] QUERY OK db=43.6ms idle=40.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "UNKNOWN", "sim_number", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.262] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737866, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.262] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"} [2026-08-19 08:27:14.309] [DEBUG] QUERY OK db=45.8ms idle=46.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "UNKNOWN", "sim_iccid", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.311] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737868, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.311] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"} [2026-08-19 08:27:14.365] [DEBUG] QUERY OK db=53.5ms queue=0.1ms idle=50.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "UNKNOWN", "sim_imsi", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.367] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737870, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.367] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"} [2026-08-19 08:27:14.423] [DEBUG] QUERY OK db=54.9ms queue=0.3ms idle=59.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "UNKNOWN", "sim_iccid2", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.424] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737872, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.424] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:27:09Z", "value" => "UNKNOWN"} [2026-08-19 08:27:14.468] [DEBUG] QUERY OK db=43.4ms idle=60.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "UNKNOWN", "sim_imsi2", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.472] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737874, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.472] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:27:09Z", "value" => "6"} [2026-08-19 08:27:14.537] [DEBUG] QUERY OK db=63.0ms queue=0.9ms idle=49.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "6", "data_usage_mb", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.539] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737876, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.540] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:27:09Z", "value" => "0"} [2026-08-19 08:27:14.596] [DEBUG] QUERY OK db=56.2ms idle=71.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "0", "mobile_data_mb", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.598] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737878, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:14.599] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:27:09Z", "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), 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), Scanne" <> ...} [2026-08-19 08:27:14.641] [DEBUG] QUERY OK db=41.7ms idle=62.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:27:09Z", "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), 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), Scanne" <> ..., "installed_apps", 73281, ~N[2026-08-19 08:27:14], ~N[2026-08-19 08:27:14]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:27:14.644] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737880, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:27:09Z", message: nil, status_log_id: 73281, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:27:14], updated_at: ~N[2026-08-19 08:27:14]}} [2026-08-19 08:27:58.593] [INFO ] Running offline device check... [2026-08-19 08:27:58.593] [INFO ] Starting offline device check... [2026-08-19 08:27:58.595] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=358.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:1234 [2026-08-19 08:27:58.609] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.4ms queue=0.4ms idle=112.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:27:58.617] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms 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:1249 [2026-08-19 08:27:58.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms 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:1249 [2026-08-19 08:27:58.621] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms 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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.622] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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:1249 [2026-08-19 08:27:58.624] [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 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.625] [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 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.626] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.626] [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:1249 [2026-08-19 08:27:58.628] [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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.636] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms 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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.650] [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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.655] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.659] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms 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:1249 [2026-08-19 08:27:58.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms 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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.688] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=24.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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.689] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=25.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:27:58.691] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.694] [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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.695] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.697] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.745] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=47.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:1249 [2026-08-19 08:27:58.747] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=1.0ms idle=48.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:27:58.748] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.760] [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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.6ms 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 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms queue=3.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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.783] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.784] [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 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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:1249 [2026-08-19 08:27:58.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms 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:1249 [2026-08-19 08:27:58.791] [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:1249 [2026-08-19 08:27:58.792] [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 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.793] [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:1249 [2026-08-19 08:27:58.795] [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:1249 [2026-08-19 08:27:58.796] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.797] [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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.798] [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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.798] [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:1249 [2026-08-19 08:27:58.800] [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:1249 [2026-08-19 08:27:58.802] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.804] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.805] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.806] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.807] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.808] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.809] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.810] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.812] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.812] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:27:58.813] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:27:58.813] [INFO ] Offline device check completed successfully [2026-08-19 08:28:33.088] [INFO ] Received status update for terminal 98251226730002 [2026-08-19 08:28:33.089] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-08-19T08:28:01Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-08-19T08:28:01Z","value":"75"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-08-19T08:28:01Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-08-19T08:28:01Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-08-19T08:28:01Z","value":""},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-08-19T08:28:01Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-08-19T08:28:01Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-08-19T08:28:01Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-08-19T08:28:01Z","vendor":"MoreFun"} [2026-08-19 08:28:33.089] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-08-19T08:28:01Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-08-19T08:28:01Z", "value" => "75"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-08-19T08:28:01Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-08-19T08:28:01Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-08-19T08:28:01Z", "value" => ""}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-08-19T08:28:01Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-08-19T08:28:01Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-08-19T08:28:01Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-08-19T08:28:01Z", "vendor" => "MoreFun"} [2026-08-19 08:28:33.089] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: ""} [2026-08-19 08:28:33.089] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-08-19 08:28:33.089] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-08-19 08:28:33.093] [DEBUG] QUERY OK source="parameter_templates" db=3.2ms idle=1088.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-08-19 08:28:33.095] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.2ms idle=978.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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:28:33.097] [DEBUG] QUERY OK source="parameter_template_values" db=0.8ms queue=1.5ms 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-08-19 08:28:33.103] [DEBUG] QUERY OK source="parameter_definitions" db=2.6ms queue=2.9ms idle=3.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-08-19 08:28:33.106] [DEBUG] QUERY OK source="pos_terminal" db=1.0ms idle=7.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-08-19 08:28:33.145] [DEBUG] QUERY OK source="pos_merchant" db=38.4ms queue=0.2ms idle=3.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [206] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-08-19 08:28:33.147] [DEBUG] QUERY OK db=0.4ms queue=0.9ms idle=292.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 ["510159090000000"] [2026-08-19 08:28:33.147] [ERROR] ParamsZipBuilder: No merchant info found for merchantid=510159090000000 [2026-08-19 08:28:33.147] [ERROR] AutoPushService: ParamsZipBuilder failed for 98251226730002: "Could not fetch merchant info for merchantid 510159090000000" [2026-08-19 08:28:33.150] [DEBUG] QUERY OK source="config_file_versions" db=1.2ms queue=0.8ms idle=29.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-08-19 08:28:33.156] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-08-19 08:28:33.211] [DEBUG] QUERY OK db=52.5ms queue=0.1ms idle=12.9ms 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", "14e57c2765a74bc5ae0c04852d4e8e895169c58aaa09a423fe5f4a0b310495ce", 1284, 17947, ~U[2026-08-19 08:28:33Z], "priv/ota/98251226730002/l3config.zip", 13, "emv_config", "MF919", "MoreFun", "full", "missing_version", "1.0.1", ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-08-19 08:28:33.211] [INFO ] AutoPushService: Created push log 45804 for MF919 l3config.zip (version: 1.0.1) [2026-08-19 08:28:33.212] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4017/ota/98251226730002/l3config.zip", "requestId" => 1284, "type" => "tms_command", "version" => "1.0.1"} [2026-08-19 08:28:33.212] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-08-19 08:28:33.212] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-08-19 08:28:33.218] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms queue=0.2ms idle=65.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-08-19 08:28:33.218] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-08-19 08:28:33.221] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=1.1ms 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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:28:33.222] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:28:33.226] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:28:33.226] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:28:33.226] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:28:33.227] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=8.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-08-19 08:28:33.227] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-08-19 08:28:33.227] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-08-19 08:28:33.228] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms 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` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:28:33.229] [INFO ] Terminal updated: 98251226730002 [2026-08-19 08:28:33.335] [DEBUG] QUERY OK source="tms_terminals" db=106.1ms queue=0.1ms idle=2.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:28:33], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:28:33.336] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=107.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-08-19 08:28:33.337] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-08-19 08:28:33.339] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms 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` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:28:33.397] [DEBUG] QUERY OK source="tms_terminals" db=57.8ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:28:33], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:28:33.400] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.6ms queue=0.2ms idle=59.9ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730002"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:28:33.468] [DEBUG] QUERY OK db=66.1ms queue=0.2ms idle=4.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["organization_id", 13, "2026-08-19T08:28:01Z", ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:28:33.475] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73282, oid: "organization_id", upload_time: "2026-08-19T08:28:01Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]} [2026-08-19 08:28:33.477] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-08-19T08:28:01Z", "value" => "online"} [2026-08-19 08:28:33.518] [DEBUG] QUERY OK db=40.9ms idle=76.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-08-19T08:28:01Z", "online", "status", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737881, itemkey: "status", value: "online", timestamp: "2026-08-19T08:28:01Z", message: "Terminal status update", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.523] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-08-19 08:28:33.525] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-08-19T08:28:01Z", "value" => "75"} [2026-08-19 08:28:33.595] [DEBUG] QUERY OK db=68.6ms idle=58.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-08-19T08:28:01Z", "75", "battery", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.598] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737883, itemkey: "battery", value: "75", timestamp: "2026-08-19T08:28:01Z", message: "Battery level", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.598] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-08-19T08:28:01Z", "value" => "online"} [2026-08-19 08:28:33.628] [DEBUG] QUERY OK db=27.2ms queue=1.6ms idle=80.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-08-19T08:28:01Z", "online", "network", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.633] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737885, itemkey: "network", value: "online", timestamp: "2026-08-19T08:28:01Z", message: "Network connectivity", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.633] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-08-19 08:28:33.634] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-08-19T08:28:01Z", "value" => "0"} [2026-08-19 08:28:33.676] [DEBUG] QUERY OK db=41.1ms idle=39.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-08-19T08:28:01Z", "0", "cpu", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.678] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737887, itemkey: "cpu", value: "0", timestamp: "2026-08-19T08:28:01Z", message: "CPU usage percentage", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.679] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-08-19T08:28:01Z", "value" => ""} [2026-08-19 08:28:33.798] [DEBUG] QUERY OK db=77.4ms queue=41.0ms idle=51.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current parameters version", "2026-08-19T08:28:01Z", "parameter_config", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.801] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737889, itemkey: "parameter_config", value: nil, timestamp: "2026-08-19T08:28:01Z", message: "Current parameters version", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.801] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-08-19T08:28:01Z", "value" => "1.0.1"} [2026-08-19 08:28:33.867] [DEBUG] QUERY OK db=64.8ms idle=126.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-08-19T08:28:01Z", "1.0.1", "emv_config", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.869] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737891, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-08-19T08:28:01Z", message: "Current EMV config version", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.870] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-08-19T08:28:01Z", "value" => ""} [2026-08-19 08:28:33.915] [DEBUG] QUERY OK db=43.9ms idle=72.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-08-19T08:28:01Z", "keys_config", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.919] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737893, itemkey: "keys_config", value: nil, timestamp: "2026-08-19T08:28:01Z", message: "Current keys config version", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.919] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-08-19T08:28:01Z", "value" => ""} [2026-08-19 08:28:33.977] [DEBUG] QUERY OK db=56.1ms queue=0.3ms idle=54.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-08-19T08:28:01Z", "application", 73282, ~N[2026-08-19 08:28:33], ~N[2026-08-19 08:28:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:28:33.980] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737895, itemkey: "application", value: nil, timestamp: "2026-08-19T08:28:01Z", message: "Current application version", status_log_id: 73282, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:28:33], updated_at: ~N[2026-08-19 08:28:33]}} [2026-08-19 08:28:33.980] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"1284","status":"success","timestamp":1787128081985,"type":"tms_response"} [2026-08-19 08:28:33.981] [INFO ] Processing file download response for device 98251226730002, request_id: 1284 [2026-08-19 08:28:33.984] [DEBUG] QUERY OK source="file_download_logs" db=1.1ms queue=1.1ms idle=66.7ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["1284"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:28:33.984] [INFO ] No file download log for request_id 1284; response not attached to a push [2026-08-19 08:28:33.985] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:28:33.984834Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "1284", "status" => "success", "timestamp" => 1787128081985, "type" => "tms_response"}, request_id: "1284", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:28:33.987] [INFO ] Received device response from 98251226730002: {"message":"Already up to date: 1.0.1","requestId":"123011","status":"success","timestamp":1787128082178,"type":"tms_response"} [2026-08-19 08:28:33.987] [INFO ] Processing file download response for device 98251226730002, request_id: 123011 [2026-08-19 08:28:33.988] [DEBUG] QUERY OK source="file_download_logs" db=1.1ms idle=9.8ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ["123011"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:742 [2026-08-19 08:28:33.988] [INFO ] No file download log for request_id 123011; response not attached to a push [2026-08-19 08:28:33.989] [INFO ] File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-08-19 08:28:33.988952Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "123011", "status" => "success", "timestamp" => 1787128082178, "type" => "tms_response"}, request_id: "123011", error_message: nil, device_serial: "98251226730002"} [2026-08-19 08:28:33.989] [WARN ] Unexpected async result [2026-08-19 08:29:59.730] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:29:59.730] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"-2536958-01-15T09:55:17Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-2536958-01-15T09:55:17Z","message":"Device Connected"}]} [2026-08-19 08:29:59.730] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-2536958-01-15T09:55:17Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "-2536958-01-15T09:55:17Z", "vendor" => "MoreFun"} [2026-08-19 08:29:59.730] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:29:59.731] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:29:59.731] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:29:59.733] [DEBUG] QUERY OK source="parameter_templates" db=2.1ms idle=953.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:29:59.734] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=905.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:29:59.737] [DEBUG] QUERY OK source="parameter_template_values" db=0.3ms idle=4.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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:29:59.774] [DEBUG] QUERY OK db=36.6ms idle=2.9ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 1444, ~U[2026-08-19 08:29:59Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:29:59], ~N[2026-08-19 08:29:59]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:29:59.774] [INFO ] AutoPushService: Created push log 45806 for parameters (template: 7) [2026-08-19 08:29:59.775] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 1444, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:29:59.775] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:29:59.775] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:29:59.822] [DEBUG] QUERY OK db=46.2ms idle=38.2ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 1508, ~U[2026-08-19 08:29:59Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:29:59], ~N[2026-08-19 08:29:59]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:29:59.822] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:29:59.823] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 1508, "retry_count" => "3"} [2026-08-19 08:29:59.823] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:29:59.823] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:29:59.824] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=49.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:29:59.824] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:29:59.825] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=2.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:29:59.826] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:29:59.830] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:29:59.831] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:29:59.831] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:29:59.870] [DEBUG] QUERY OK db=39.4ms idle=5.7ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 7426, ~U[2026-08-19 08:29:59Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:29:59], ~N[2026-08-19 08:29:59]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:29:59.871] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:29:59.871] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 7426, "retry_count" => "3"} [2026-08-19 08:29:59.871] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:29:59.871] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:29:59.871] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:29:59.875] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms idle=42.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:29:59.876] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:29:59.923] [DEBUG] QUERY OK source="tms_terminals" db=46.9ms idle=5.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:29:59], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:29:59.923] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:29:59.925] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms 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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:29:59.972] [DEBUG] QUERY OK source="tms_terminals" db=45.8ms idle=2.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:29:59], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:29:59.973] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms idle=47.0ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:30:00.035] [DEBUG] QUERY OK db=60.8ms idle=1.8ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "-2536958-01-15T09:55:17Z", ~N[2026-08-19 08:29:59], ~N[2026-08-19 08:29:59]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:30:00.038] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73284, oid: "org-id-placeholder", upload_time: "-2536958-01-15T09:55:17Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:29:59], updated_at: ~N[2026-08-19 08:29:59]} [2026-08-19 08:30:00.039] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-2536958-01-15T09:55:17Z", "value" => "online"} [2026-08-19 08:30:00.084] [DEBUG] QUERY OK db=44.3ms idle=66.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-2536958-01-15T09:55:17Z", "online", "status", 73284, ~N[2026-08-19 08:30:00], ~N[2026-08-19 08:30:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:00.088] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737897, itemkey: "status", value: "online", timestamp: "-2536958-01-15T09:55:17Z", message: "Device Connected", status_log_id: 73284, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:00], updated_at: ~N[2026-08-19 08:30:00]}} [2026-08-19 08:30:00.088] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:30:00.088] [WARN ] Unexpected async result [2026-08-19 08:30:00.088] [WARN ] Unexpected async result [2026-08-19 08:30:00.089] [WARN ] Unexpected async result [2026-08-19 08:30:09.097] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:30:09.098] [INFO ] Incoming JSON payload: {"oid":"66e0a597-3b42-4132-a5c0-23b9ea58bfc7","sn":"98251226730001","uploadTime":"2026-08-19T08:30:03Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"ram_free_mb","value":"1044","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:30:03Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:30:03Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:30:09.099] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "66e0a597-3b42-4132-a5c0-23b9ea58bfc7", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:30:03Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:30:03Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:30:03Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:30:03Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:30:03Z", "value" => "1044"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:30:03Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:30:03Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:30:03Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:30:03Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:30:03Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:30:03Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:30:03Z", "vendor" => "morefun"} [2026-08-19 08:30:09.099] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:30:09.099] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:30:09.102] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:30:09.105] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms queue=0.3ms idle=1094.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-08-19 08:30:09.107] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms idle=209.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-08-19 08:30:09.108] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:30:09.112] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms 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.`serial_number` = ?) ["98251226730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:30:09.113] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:30:09.166] [DEBUG] QUERY OK source="tms_terminals" db=51.3ms idle=6.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:30:09], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:30:09.166] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:30:09.174] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=0.1ms idle=62.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:1184 [2026-08-19 08:30:09.214] [DEBUG] QUERY OK source="tms_terminals" db=39.7ms idle=9.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:30:09], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:30:09.218] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.7ms queue=1.3ms idle=40.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:30:09.273] [DEBUG] QUERY OK db=54.8ms idle=3.9ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["66e0a597-3b42-4132-a5c0-23b9ea58bfc7", 33, "2026-08-19T08:30:03Z", ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:30:09.279] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73286, oid: "66e0a597-3b42-4132-a5c0-23b9ea58bfc7", upload_time: "2026-08-19T08:30:03Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]} [2026-08-19 08:30:09.279] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:30:03Z", "value" => "morefun"} [2026-08-19 08:30:09.369] [DEBUG] QUERY OK db=45.7ms queue=41.3ms idle=64.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "morefun", "vendor", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.374] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737899, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.374] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:30:03Z", "value" => "kiosk_launcher"} [2026-08-19 08:30:09.532] [DEBUG] QUERY OK db=155.1ms queue=2.3ms idle=101.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "kiosk_launcher", "model", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.537] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737901, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.537] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:30:03Z", "value" => "1.0"} [2026-08-19 08:30:09.602] [DEBUG] QUERY OK db=61.5ms idle=170.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "1.0", "app_version", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.608] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737904, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.609] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:30:03Z", "value" => "13"} [2026-08-19 08:30:09.671] [DEBUG] QUERY OK db=61.9ms idle=76.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "13", "android_version", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.694] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737906, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.694] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:30:03Z", "value" => "1044"} [2026-08-19 08:30:09.723] [DEBUG] QUERY OK db=25.5ms queue=2.3ms idle=23.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "1044", "ram_free_mb", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.725] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737908, itemkey: "ram_free_mb", value: "1044", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.725] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:30:03Z", "value" => "WIFI"} [2026-08-19 08:30:09.785] [DEBUG] QUERY OK db=59.1ms idle=10.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "WIFI", "network_type", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.791] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737909, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.791] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:30:03Z", "value" => "true"} [2026-08-19 08:30:09.861] [DEBUG] QUERY OK db=70.3ms idle=68.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "true", "kiosk_active", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.873] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737912, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.873] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:30:03Z", "value" => ""} [2026-08-19 08:30:09.980] [DEBUG] QUERY OK db=102.3ms queue=0.1ms idle=93.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:30:03Z", "sim_operator", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:09.987] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737914, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:09.987] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"} [2026-08-19 08:30:10.041] [DEBUG] QUERY OK db=51.7ms queue=2.2ms idle=80.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "UNKNOWN", "sim_number", 73286, ~N[2026-08-19 08:30:09], ~N[2026-08-19 08:30:09]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.047] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737916, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:09], updated_at: ~N[2026-08-19 08:30:09]}} [2026-08-19 08:30:10.048] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"} [2026-08-19 08:30:10.110] [DEBUG] QUERY OK db=61.0ms queue=0.5ms idle=67.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "UNKNOWN", "sim_iccid", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.113] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737918, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:30:10.113] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"} [2026-08-19 08:30:10.168] [DEBUG] QUERY OK db=54.6ms queue=0.1ms idle=71.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "UNKNOWN", "sim_imsi", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.170] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737920, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:30:10.171] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"} [2026-08-19 08:30:10.238] [DEBUG] QUERY OK db=65.5ms decode=0.1ms queue=0.4ms idle=62.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "UNKNOWN", "sim_iccid2", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.241] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737922, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:30:10.241] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:30:03Z", "value" => "UNKNOWN"} [2026-08-19 08:30:10.318] [DEBUG] QUERY OK db=76.6ms idle=73.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "UNKNOWN", "sim_imsi2", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.323] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737924, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:30:10.323] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:30:03Z", "value" => "6"} [2026-08-19 08:30:10.352] [DEBUG] QUERY OK db=25.9ms queue=0.4ms idle=88.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "6", "data_usage_mb", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.355] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737926, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:30:10.355] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:30:03Z", "value" => "0"} [2026-08-19 08:30:10.459] [DEBUG] QUERY OK db=101.0ms idle=39.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "0", "mobile_data_mb", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.460] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737928, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:30:10.463] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:30:03Z", "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), 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), Scanne" <> ...} [2026-08-19 08:30:10.624] [DEBUG] QUERY OK db=160.3ms idle=110.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:30:03Z", "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), 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), Scanne" <> ..., "installed_apps", 73286, ~N[2026-08-19 08:30:10], ~N[2026-08-19 08:30:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:30:10.626] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737930, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:30:03Z", message: nil, status_log_id: 73286, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:30:10], updated_at: ~N[2026-08-19 08:30:10]}} [2026-08-19 08:32:54.320] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/0649fd29d0712c4843baa4b4d90d5457b89aa4b4ae4aea64196b816d50a512ef/merged"}, []}} [2026-08-19 08:32:57.919] [INFO ] Performing scheduled filter cache refresh... [2026-08-19 08:32:57.920] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=894.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-08-19 08:32:57.920] [DEBUG] QUERY OK source="filter_usage" db=0.3ms idle=425.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-08-19 08:32:57.921] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 8 models [2026-08-19 08:32:58.817] [INFO ] Running offline device check... [2026-08-19 08:32:58.817] [INFO ] Starting offline device check... [2026-08-19 08:32:58.820] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms queue=0.1ms idle=896.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:1234 [2026-08-19 08:32:58.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms decode=0.6ms queue=0.1ms idle=324.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:32:58.838] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.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:1249 [2026-08-19 08:32:58.840] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms 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:1249 [2026-08-19 08:32:58.841] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms 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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.842] [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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.843] [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:1249 [2026-08-19 08:32:58.844] [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:1249 [2026-08-19 08:32:58.844] [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:1249 [2026-08-19 08:32:58.845] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.848] [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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.853] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.854] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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:1249 [2026-08-19 08:32:58.869] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms 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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.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:1249 [2026-08-19 08:32:58.878] [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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.879] [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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.898] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.899] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms 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:1249 [2026-08-19 08:32:58.901] [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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.902] [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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.904] [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:1249 [2026-08-19 08:32:58.904] [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:1249 [2026-08-19 08:32:58.941] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=35.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:1249 [2026-08-19 08:32:58.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=36.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:32:58.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.954] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.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:1249 [2026-08-19 08:32:58.955] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms 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:1249 [2026-08-19 08:32:58.960] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms 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:1249 [2026-08-19 08:32:58.962] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms decode=0.8ms 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:1249 [2026-08-19 08:32:58.963] [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:1249 [2026-08-19 08:32:58.968] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.969] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms 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:1249 [2026-08-19 08:32:58.970] [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 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.971] [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:1249 [2026-08-19 08:32:58.971] [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:1249 [2026-08-19 08:32:58.973] [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:1249 [2026-08-19 08:32:58.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.974] [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:1249 [2026-08-19 08:32:58.975] [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:1249 [2026-08-19 08:32:58.975] [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:1249 [2026-08-19 08:32:58.976] [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:1249 [2026-08-19 08:32:58.977] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.978] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.978] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.979] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.980] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.981] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.982] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.982] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.983] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.984] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:32:58.984] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:32:58.985] [INFO ] Offline device check completed successfully [2026-08-19 08:33:40.414] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:33:40.414] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:33:37Z","org.device":[{"itemkey":"battery","value":80,"timestamp":"2026-08-19T12:33:37Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:33:37Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:33:37Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:33:37Z","message":""}]} [2026-08-19 08:33:40.415] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:33:37Z", "value" => 80}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:33:37Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:33:37Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:33:37Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:33:37Z"} [2026-08-19 08:33:40.415] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:33:40.416] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=786.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:33:40.416] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:33:40.456] [DEBUG] QUERY OK source="tms_terminals" db=39.2ms queue=0.1ms idle=378.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:33:40], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:33:40.458] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=40.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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:33:40.495] [DEBUG] QUERY OK source="tms_terminals" db=36.9ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:33:40], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:33:40.496] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms idle=38.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:33:40.534] [DEBUG] QUERY OK db=37.3ms idle=1.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:33:37Z", ~N[2026-08-19 08:33:40], ~N[2026-08-19 08:33:40]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:33:40.536] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73289, oid: "org-id-placeholder", upload_time: "2026-08-19T12:33:37Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:33:40], updated_at: ~N[2026-08-19 08:33:40]} [2026-08-19 08:33:40.536] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:33:37Z", "value" => 80} [2026-08-19 08:33:40.607] [DEBUG] QUERY OK db=70.1ms queue=0.1ms idle=40.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:33:37Z", "80", "battery", 73289, ~N[2026-08-19 08:33:40], ~N[2026-08-19 08:33:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:33:40.608] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737932, itemkey: "battery", value: "80", timestamp: "2026-08-19T12:33:37Z", message: nil, status_log_id: 73289, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:33:40], updated_at: ~N[2026-08-19 08:33:40]}} [2026-08-19 08:33:40.608] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:33:37Z", "value" => 50} [2026-08-19 08:33:40.653] [DEBUG] QUERY OK db=44.6ms idle=74.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:33:37Z", "50", "memory", 73289, ~N[2026-08-19 08:33:40], ~N[2026-08-19 08:33:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:33:40.654] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737934, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:33:37Z", message: "Normal", status_log_id: 73289, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:33:40], updated_at: ~N[2026-08-19 08:33:40]}} [2026-08-19 08:33:40.654] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:33:37Z", "value" => 50} [2026-08-19 08:33:40.710] [DEBUG] QUERY OK db=54.8ms idle=24.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:33:37Z", "50", "cpu", 73289, ~N[2026-08-19 08:33:40], ~N[2026-08-19 08:33:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:33:40.711] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737936, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:33:37Z", message: nil, status_log_id: 73289, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:33:40], updated_at: ~N[2026-08-19 08:33:40]}} [2026-08-19 08:33:40.711] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:33:37Z", "value" => "online"} [2026-08-19 08:33:40.777] [DEBUG] QUERY OK db=65.4ms idle=58.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:33:37Z", "online", "network", 73289, ~N[2026-08-19 08:33:40], ~N[2026-08-19 08:33:40]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:33:40.779] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737938, itemkey: "network", value: "online", timestamp: "2026-08-19T12:33:37Z", message: nil, status_log_id: 73289, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:33:40], updated_at: ~N[2026-08-19 08:33:40]}} [2026-08-19 08:33:40.779] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:35:16.637] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:35:16.638] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"-4402510-08-13T14:29:22Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-4402510-08-13T14:29:22Z","message":"Device Connected"}]} [2026-08-19 08:35:16.638] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-4402510-08-13T14:29:22Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "-4402510-08-13T14:29:22Z", "vendor" => "MoreFun"} [2026-08-19 08:35:16.638] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:35:16.638] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:35:16.640] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:35:16.641] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=716.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:35:16.642] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=603.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:35:16.643] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms queue=0.2ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:35:16.879] [DEBUG] QUERY OK db=234.2ms idle=2.1ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 2915, ~U[2026-08-19 08:35:16Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:35:16], ~N[2026-08-19 08:35:16]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:35:16.879] [INFO ] AutoPushService: Created push log 45812 for parameters (template: 7) [2026-08-19 08:35:16.879] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 2915, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:35:16.880] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:35:16.881] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:35:16.983] [DEBUG] QUERY OK db=102.0ms idle=237.6ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 1797, ~U[2026-08-19 08:35:16Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:35:16], ~N[2026-08-19 08:35:16]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:35:16.983] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:35:16.984] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 1797, "retry_count" => "3"} [2026-08-19 08:35:16.984] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:35:16.984] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:35:16.986] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=57.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:35:16.986] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:35:16.989] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms 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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:35:16.989] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:35:16.995] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:35:16.995] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:35:16.995] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:35:17.046] [DEBUG] QUERY OK db=50.3ms idle=10.3ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 7874, ~U[2026-08-19 08:35:16Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:35:16], ~N[2026-08-19 08:35:16]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:35:17.047] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:35:17.047] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 7874, "retry_count" => "3"} [2026-08-19 08:35:17.047] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:35:17.047] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:35:17.047] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:35:17.050] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=58.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:35:17.050] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:35:17.097] [DEBUG] QUERY OK source="tms_terminals" db=46.7ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:35:17], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:35:17.098] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:35:17.099] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=47.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:35:17.142] [DEBUG] QUERY OK source="tms_terminals" db=42.9ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:35:17], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:35:17.143] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms idle=43.9ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:35:17.203] [DEBUG] QUERY OK db=59.1ms idle=1.5ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "-4402510-08-13T14:29:22Z", ~N[2026-08-19 08:35:17], ~N[2026-08-19 08:35:17]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:35:17.204] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73291, oid: "org-id-placeholder", upload_time: "-4402510-08-13T14:29:22Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:35:17], updated_at: ~N[2026-08-19 08:35:17]} [2026-08-19 08:35:17.204] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-4402510-08-13T14:29:22Z", "value" => "online"} [2026-08-19 08:35:17.247] [DEBUG] QUERY OK db=42.3ms idle=61.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-4402510-08-13T14:29:22Z", "online", "status", 73291, ~N[2026-08-19 08:35:17], ~N[2026-08-19 08:35:17]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:35:17.248] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737940, itemkey: "status", value: "online", timestamp: "-4402510-08-13T14:29:22Z", message: "Device Connected", status_log_id: 73291, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:35:17], updated_at: ~N[2026-08-19 08:35:17]}} [2026-08-19 08:35:17.248] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:35:17.248] [WARN ] Unexpected async result [2026-08-19 08:35:17.248] [WARN ] Unexpected async result [2026-08-19 08:35:17.248] [WARN ] Unexpected async result [2026-08-19 08:36:57.240] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:36:57.240] [INFO ] Incoming JSON payload: {"oid":"3bf1c253-2ba7-445d-8b8b-4886f3fe46e5","sn":"98251226730001","uploadTime":"2026-08-19T08:36:51Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"ram_free_mb","value":"1044","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:36:51Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:36:51Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:36:57.242] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "3bf1c253-2ba7-445d-8b8b-4886f3fe46e5", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:36:51Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:36:51Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:36:51Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:36:51Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:36:51Z", "value" => "1044"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:36:51Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:36:51Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:36:51Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:36:51Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:36:51Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:36:51Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:36:51Z", "vendor" => "morefun"} [2026-08-19 08:36:57.242] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:36:57.242] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:36:57.242] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:36:57.245] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms queue=0.3ms idle=1198.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-08-19 08:36:57.246] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.3ms idle=926.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-08-19 08:36:57.246] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:36:57.248] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms 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"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:36:57.249] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:36:57.281] [DEBUG] QUERY OK source="tms_terminals" db=31.3ms idle=3.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:36:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:36:57.281] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:36:57.282] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=32.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:1184 [2026-08-19 08:36:57.317] [DEBUG] QUERY OK source="tms_terminals" db=34.9ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:36:57], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:36:57.319] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=36.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:36:57.380] [DEBUG] QUERY OK db=59.4ms idle=1.3ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["3bf1c253-2ba7-445d-8b8b-4886f3fe46e5", 33, "2026-08-19T08:36:51Z", ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:36:57.382] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73293, oid: "3bf1c253-2ba7-445d-8b8b-4886f3fe46e5", upload_time: "2026-08-19T08:36:51Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]} [2026-08-19 08:36:57.382] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:36:51Z", "value" => "morefun"} [2026-08-19 08:36:57.451] [DEBUG] QUERY OK db=68.3ms idle=60.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "morefun", "vendor", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.452] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737942, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.452] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:36:51Z", "value" => "kiosk_launcher"} [2026-08-19 08:36:57.498] [DEBUG] QUERY OK db=46.0ms idle=71.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "kiosk_launcher", "model", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.500] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737944, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.501] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:36:51Z", "value" => "1.0"} [2026-08-19 08:36:57.550] [DEBUG] QUERY OK db=48.4ms idle=51.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "1.0", "app_version", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.551] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737946, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.551] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:36:51Z", "value" => "13"} [2026-08-19 08:36:57.591] [DEBUG] QUERY OK db=39.3ms idle=53.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "13", "android_version", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.594] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737948, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.594] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:36:51Z", "value" => "1044"} [2026-08-19 08:36:57.636] [DEBUG] QUERY OK db=42.0ms idle=44.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "1044", "ram_free_mb", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.638] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737950, itemkey: "ram_free_mb", value: "1044", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.638] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:36:51Z", "value" => "WIFI"} [2026-08-19 08:36:57.721] [DEBUG] QUERY OK db=82.6ms idle=47.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "WIFI", "network_type", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.722] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737952, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.722] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:36:51Z", "value" => "true"} [2026-08-19 08:36:57.768] [DEBUG] QUERY OK db=44.9ms idle=86.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "true", "kiosk_active", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.769] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737954, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.769] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:36:51Z", "value" => ""} [2026-08-19 08:36:57.844] [DEBUG] QUERY OK db=74.0ms queue=0.3ms idle=48.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:36:51Z", "sim_operator", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.845] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737956, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.845] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"} [2026-08-19 08:36:57.985] [DEBUG] QUERY OK db=140.0ms idle=77.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "UNKNOWN", "sim_number", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:57.987] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737958, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:57.987] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"} [2026-08-19 08:36:58.048] [DEBUG] QUERY OK db=60.4ms idle=143.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "UNKNOWN", "sim_iccid", 73293, ~N[2026-08-19 08:36:57], ~N[2026-08-19 08:36:57]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.050] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737960, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:57], updated_at: ~N[2026-08-19 08:36:57]}} [2026-08-19 08:36:58.050] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"} [2026-08-19 08:36:58.135] [DEBUG] QUERY OK db=84.7ms queue=0.6ms idle=64.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "UNKNOWN", "sim_imsi", 73293, ~N[2026-08-19 08:36:58], ~N[2026-08-19 08:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.137] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737962, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:58], updated_at: ~N[2026-08-19 08:36:58]}} [2026-08-19 08:36:58.137] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"} [2026-08-19 08:36:58.182] [DEBUG] QUERY OK db=44.4ms idle=89.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "UNKNOWN", "sim_iccid2", 73293, ~N[2026-08-19 08:36:58], ~N[2026-08-19 08:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.184] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737964, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:58], updated_at: ~N[2026-08-19 08:36:58]}} [2026-08-19 08:36:58.184] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:36:51Z", "value" => "UNKNOWN"} [2026-08-19 08:36:58.234] [DEBUG] QUERY OK db=49.3ms queue=0.3ms idle=49.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "UNKNOWN", "sim_imsi2", 73293, ~N[2026-08-19 08:36:58], ~N[2026-08-19 08:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737966, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:58], updated_at: ~N[2026-08-19 08:36:58]}} [2026-08-19 08:36:58.236] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:36:51Z", "value" => "6"} [2026-08-19 08:36:58.285] [DEBUG] QUERY OK db=49.4ms idle=53.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "6", "data_usage_mb", 73293, ~N[2026-08-19 08:36:58], ~N[2026-08-19 08:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.287] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737968, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:58], updated_at: ~N[2026-08-19 08:36:58]}} [2026-08-19 08:36:58.288] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:36:51Z", "value" => "0"} [2026-08-19 08:36:58.323] [DEBUG] QUERY OK db=35.5ms idle=53.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "0", "mobile_data_mb", 73293, ~N[2026-08-19 08:36:58], ~N[2026-08-19 08:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.326] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737970, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:58], updated_at: ~N[2026-08-19 08:36:58]}} [2026-08-19 08:36:58.326] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:36:51Z", "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), 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), Scanne" <> ...} [2026-08-19 08:36:58.395] [DEBUG] QUERY OK db=67.7ms idle=3.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:36:51Z", "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), 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), Scanne" <> ..., "installed_apps", 73293, ~N[2026-08-19 08:36:58], ~N[2026-08-19 08:36:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:36:58.398] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737972, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:36:51Z", message: nil, status_log_id: 73293, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:36:58], updated_at: ~N[2026-08-19 08:36:58]}} [2026-08-19 08:37:58.986] [INFO ] Running offline device check... [2026-08-19 08:37:58.986] [INFO ] Starting offline device check... [2026-08-19 08:37:58.987] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=942.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:1234 [2026-08-19 08:37:58.997] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=488.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:37:59.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.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:1249 [2026-08-19 08:37:59.007] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms 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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.007] [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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.008] [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:1249 [2026-08-19 08:37:59.009] [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 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.009] [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 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.010] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.011] [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:1249 [2026-08-19 08:37:59.013] [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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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:1249 [2026-08-19 08:37:59.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms decode=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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.031] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.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:1249 [2026-08-19 08:37:59.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms 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:1249 [2026-08-19 08:37:59.037] [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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.037] [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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.038] [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:1249 [2026-08-19 08:37:59.058] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms 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 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.062] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.065] [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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.067] [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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.068] [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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=41.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:1249 [2026-08-19 08:37:59.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms 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 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.119] [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:1249 [2026-08-19 08:37:59.120] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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:1249 [2026-08-19 08:37:59.123] [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:1249 [2026-08-19 08:37:59.124] [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:1249 [2026-08-19 08:37:59.125] [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:1249 [2026-08-19 08:37:59.132] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.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:1249 [2026-08-19 08:37:59.133] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms 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 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.134] [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:1249 [2026-08-19 08:37:59.135] [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 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.136] [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:1249 [2026-08-19 08:37:59.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.141] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms 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:1249 [2026-08-19 08:37:59.142] [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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.143] [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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.144] [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 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.145] [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:1249 [2026-08-19 08:37:59.146] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.147] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.148] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.149] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.149] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.150] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.151] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.152] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.153] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.153] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:37:59.154] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:37:59.154] [INFO ] Offline device check completed successfully [2026-08-19 08:38:52.292] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:38:52.292] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:38:49Z","org.device":[{"itemkey":"battery","value":80,"timestamp":"2026-08-19T12:38:49Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:38:49Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:38:49Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:38:49Z","message":""}]} [2026-08-19 08:38:52.293] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:38:49Z", "value" => 80}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:38:49Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:38:49Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:38:49Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:38:49Z"} [2026-08-19 08:38:52.293] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:38:52.294] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=650.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:38:52.295] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:38:52.320] [DEBUG] QUERY OK source="tms_terminals" db=24.1ms idle=248.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:38:52], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:38:52.321] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=25.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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:38:52.415] [DEBUG] QUERY OK source="tms_terminals" db=93.5ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:38:52], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:38:52.416] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms idle=94.4ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:38:52.476] [DEBUG] QUERY OK db=58.8ms idle=1.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:38:49Z", ~N[2026-08-19 08:38:52], ~N[2026-08-19 08:38:52]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:38:52.480] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73295, oid: "org-id-placeholder", upload_time: "2026-08-19T12:38:49Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:38:52], updated_at: ~N[2026-08-19 08:38:52]} [2026-08-19 08:38:52.480] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:38:49Z", "value" => 80} [2026-08-19 08:38:52.521] [DEBUG] QUERY OK db=40.3ms queue=0.2ms idle=64.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:38:49Z", "80", "battery", 73295, ~N[2026-08-19 08:38:52], ~N[2026-08-19 08:38:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:38:52.523] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737974, itemkey: "battery", value: "80", timestamp: "2026-08-19T12:38:49Z", message: nil, status_log_id: 73295, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:38:52], updated_at: ~N[2026-08-19 08:38:52]}} [2026-08-19 08:38:52.523] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:38:49Z", "value" => 50} [2026-08-19 08:38:52.569] [DEBUG] QUERY OK db=45.6ms idle=47.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:38:49Z", "50", "memory", 73295, ~N[2026-08-19 08:38:52], ~N[2026-08-19 08:38:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:38:52.570] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737976, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:38:49Z", message: "Normal", status_log_id: 73295, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:38:52], updated_at: ~N[2026-08-19 08:38:52]}} [2026-08-19 08:38:52.570] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:38:49Z", "value" => 50} [2026-08-19 08:38:52.636] [DEBUG] QUERY OK db=65.3ms idle=49.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:38:49Z", "50", "cpu", 73295, ~N[2026-08-19 08:38:52], ~N[2026-08-19 08:38:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:38:52.638] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737978, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:38:49Z", message: nil, status_log_id: 73295, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:38:52], updated_at: ~N[2026-08-19 08:38:52]}} [2026-08-19 08:38:52.638] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:38:49Z", "value" => "online"} [2026-08-19 08:38:52.679] [DEBUG] QUERY OK db=40.5ms idle=69.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:38:49Z", "online", "network", 73295, ~N[2026-08-19 08:38:52], ~N[2026-08-19 08:38:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:38:52.680] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737980, itemkey: "network", value: "online", timestamp: "2026-08-19T12:38:49Z", message: nil, status_log_id: 73295, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:38:52], updated_at: ~N[2026-08-19 08:38:52]}} [2026-08-19 08:38:52.680] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:40:34.940] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:40:34.940] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"1147597-12-20T20:01:04Z","org.device":[{"itemkey":"status","value":"online","timestamp":"1147597-12-20T20:01:04Z","message":"Device Connected"}]} [2026-08-19 08:40:34.940] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "1147597-12-20T20:01:04Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "1147597-12-20T20:01:04Z", "vendor" => "MoreFun"} [2026-08-19 08:40:34.940] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:40:34.941] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:40:34.941] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:40:34.944] [DEBUG] QUERY OK source="parameter_templates" db=2.8ms idle=1872.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:40:34.946] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=970.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:40:34.947] [DEBUG] QUERY OK source="parameter_template_values" db=0.4ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:40:34.977] [DEBUG] QUERY OK db=29.6ms idle=1.2ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 8290, ~U[2026-08-19 08:40:34Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:40:34], ~N[2026-08-19 08:40:34]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:40:34.977] [INFO ] AutoPushService: Created push log 45818 for parameters (template: 7) [2026-08-19 08:40:34.977] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 8290, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:40:34.978] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:40:34.978] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:40:35.039] [DEBUG] QUERY OK db=61.1ms idle=0.9ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 1893, ~U[2026-08-19 08:40:34Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:40:34], ~N[2026-08-19 08:40:34]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:40:35.039] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:40:35.040] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 1893, "retry_count" => "3"} [2026-08-19 08:40:35.040] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:40:35.040] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:40:35.041] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=59.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:40:35.042] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:40:35.043] [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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:40:35.043] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:40:35.047] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:40:35.047] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:40:35.047] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:40:35.111] [DEBUG] QUERY OK db=62.3ms idle=7.3ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 1925, ~U[2026-08-19 08:40:35Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:40:35], ~N[2026-08-19 08:40:35]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:40:35.111] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:40:35.112] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 1925, "retry_count" => "3"} [2026-08-19 08:40:35.112] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:40:35.112] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:40:35.112] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:40:35.113] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=69.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:40:35.113] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:40:35.161] [DEBUG] QUERY OK source="tms_terminals" db=47.2ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:40:35], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:40:35.161] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:40:35.163] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=49.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:40:35.233] [DEBUG] QUERY OK source="tms_terminals" db=68.4ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:40:35], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:40:35.234] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.5ms idle=71.1ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:40:35.284] [DEBUG] QUERY OK db=49.5ms idle=3.1ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "1147597-12-20T20:01:04Z", ~N[2026-08-19 08:40:35], ~N[2026-08-19 08:40:35]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:40:35.286] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73297, oid: "org-id-placeholder", upload_time: "1147597-12-20T20:01:04Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:35], updated_at: ~N[2026-08-19 08:40:35]} [2026-08-19 08:40:35.286] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "1147597-12-20T20:01:04Z", "value" => "online"} [2026-08-19 08:40:35.341] [DEBUG] QUERY OK db=54.3ms idle=51.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "1147597-12-20T20:01:04Z", "online", "status", 73297, ~N[2026-08-19 08:40:35], ~N[2026-08-19 08:40:35]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:35.343] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737982, itemkey: "status", value: "online", timestamp: "1147597-12-20T20:01:04Z", message: "Device Connected", status_log_id: 73297, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:35], updated_at: ~N[2026-08-19 08:40:35]}} [2026-08-19 08:40:35.343] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:40:35.343] [WARN ] Unexpected async result [2026-08-19 08:40:35.343] [WARN ] Unexpected async result [2026-08-19 08:40:35.343] [WARN ] Unexpected async result [2026-08-19 08:40:51.835] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:40:51.836] [INFO ] Incoming JSON payload: {"oid":"90866c8b-b890-4907-99a6-17b6f90d9589","sn":"98251226730001","uploadTime":"2026-08-19T08:40:51Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"ram_free_mb","value":"1039","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:40:51Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:40:51Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:40:51.837] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "90866c8b-b890-4907-99a6-17b6f90d9589", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:40:51Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:40:51Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:40:51Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:40:51Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:40:51Z", "value" => "1039"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:40:51Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:40:51Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:40:51Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:40:51Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:40:51Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:40:51Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:40:51Z", "vendor" => "morefun"} [2026-08-19 08:40:51.837] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:40:51.837] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:40:51.837] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:40:51.839] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms queue=0.1ms idle=699.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-08-19 08:40:51.840] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=699.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-08-19 08:40:51.840] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:40:51.841] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms 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:140 [2026-08-19 08:40:51.841] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:40:51.891] [DEBUG] QUERY OK source="tms_terminals" db=49.6ms idle=1.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:40:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:40:51.892] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:40:51.892] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=50.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:1184 [2026-08-19 08:40:51.939] [DEBUG] QUERY OK source="tms_terminals" db=45.2ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:40:51], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:40:51.940] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.2ms idle=46.9ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:40:52.006] [DEBUG] QUERY OK db=65.2ms idle=2.0ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["90866c8b-b890-4907-99a6-17b6f90d9589", 33, "2026-08-19T08:40:51Z", ~N[2026-08-19 08:40:51], ~N[2026-08-19 08:40:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:40:52.008] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73299, oid: "90866c8b-b890-4907-99a6-17b6f90d9589", upload_time: "2026-08-19T08:40:51Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:51], updated_at: ~N[2026-08-19 08:40:51]} [2026-08-19 08:40:52.008] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:40:51Z", "value" => "morefun"} [2026-08-19 08:40:52.053] [DEBUG] QUERY OK db=45.0ms idle=67.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "morefun", "vendor", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.058] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737984, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.059] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:40:51Z", "value" => "kiosk_launcher"} [2026-08-19 08:40:52.104] [DEBUG] QUERY OK db=44.5ms idle=53.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "kiosk_launcher", "model", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.106] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737986, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.106] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:40:51Z", "value" => "1.0"} [2026-08-19 08:40:52.159] [DEBUG] QUERY OK db=53.1ms idle=52.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "1.0", "app_version", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737988, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.160] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:40:51Z", "value" => "13"} [2026-08-19 08:40:52.234] [DEBUG] QUERY OK db=73.0ms idle=18.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "13", "android_version", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737990, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.235] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:40:51Z", "value" => "1039"} [2026-08-19 08:40:52.295] [DEBUG] QUERY OK db=58.6ms idle=76.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "1039", "ram_free_mb", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.296] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737992, itemkey: "ram_free_mb", value: "1039", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.296] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:40:51Z", "value" => "WIFI"} [2026-08-19 08:40:52.359] [DEBUG] QUERY OK db=61.8ms idle=63.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "WIFI", "network_type", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.361] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737994, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.361] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:40:51Z", "value" => "true"} [2026-08-19 08:40:52.419] [DEBUG] QUERY OK db=57.4ms idle=66.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "true", "kiosk_active", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.421] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737996, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.421] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:40:51Z", "value" => ""} [2026-08-19 08:40:52.478] [DEBUG] QUERY OK db=56.7ms idle=62.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:40:51Z", "sim_operator", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.480] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 737998, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.480] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"} [2026-08-19 08:40:52.544] [DEBUG] QUERY OK db=63.7ms idle=61.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "UNKNOWN", "sim_number", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.545] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738000, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.545] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"} [2026-08-19 08:40:52.631] [DEBUG] QUERY OK db=85.6ms idle=67.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "UNKNOWN", "sim_iccid", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.632] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738002, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.633] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"} [2026-08-19 08:40:52.657] [DEBUG] QUERY OK db=23.9ms idle=88.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "UNKNOWN", "sim_imsi", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.660] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738004, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.660] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"} [2026-08-19 08:40:52.729] [DEBUG] QUERY OK db=68.4ms idle=29.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "UNKNOWN", "sim_iccid2", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.731] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738006, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.731] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:40:51Z", "value" => "UNKNOWN"} [2026-08-19 08:40:52.792] [DEBUG] QUERY OK db=59.9ms idle=74.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "UNKNOWN", "sim_imsi2", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.793] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738008, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.793] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:40:51Z", "value" => "6"} [2026-08-19 08:40:52.821] [DEBUG] QUERY OK db=27.6ms idle=63.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "6", "data_usage_mb", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.822] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738010, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.822] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:40:51Z", "value" => "0"} [2026-08-19 08:40:52.885] [DEBUG] QUERY OK db=62.6ms idle=31.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "0", "mobile_data_mb", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.886] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738012, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:40:52.887] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:40:51Z", "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), 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), Scanne" <> ...} [2026-08-19 08:40:52.952] [DEBUG] QUERY OK db=64.2ms idle=66.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:40:51Z", "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), 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), Scanne" <> ..., "installed_apps", 73299, ~N[2026-08-19 08:40:52], ~N[2026-08-19 08:40:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:40:52.955] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738014, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:40:51Z", message: nil, status_log_id: 73299, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:40:52], updated_at: ~N[2026-08-19 08:40:52]}} [2026-08-19 08:42:59.155] [INFO ] Running offline device check... [2026-08-19 08:42:59.155] [INFO ] Starting offline device check... [2026-08-19 08:42:59.157] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=1061.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:1234 [2026-08-19 08:42:59.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=673.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:42:59.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.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 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.175] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.176] [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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.177] [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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.178] [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:1249 [2026-08-19 08:42:59.179] [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 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.181] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.182] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.184] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms 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 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.207] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.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:1249 [2026-08-19 08:42:59.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms 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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=1.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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms 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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.221] [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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.243] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.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:1249 [2026-08-19 08:42:59.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=22.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:42:59.247] [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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.249] [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 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.250] [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:1249 [2026-08-19 08:42:59.251] [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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.291] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=38.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 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.291] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=39.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:42:59.292] [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:1249 [2026-08-19 08:42:59.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.304] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=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 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.307] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.310] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.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:1249 [2026-08-19 08:42:59.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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:1249 [2026-08-19 08:42:59.316] [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 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.317] [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 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.318] [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:1249 [2026-08-19 08:42:59.319] [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 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.321] [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 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.323] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms 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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.324] [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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.325] [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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.326] [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:1249 [2026-08-19 08:42:59.327] [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 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.329] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.330] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.331] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.332] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.333] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms 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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.334] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.336] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.336] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.337] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:42:59.337] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:42:59.338] [INFO ] Offline device check completed successfully [2026-08-19 08:44:04.541] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:44:04.541] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:44:01Z","org.device":[{"itemkey":"battery","value":80,"timestamp":"2026-08-19T12:44:01Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:44:01Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:44:01Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:44:01Z","message":""}]} [2026-08-19 08:44:04.541] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:44:01Z", "value" => 80}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:44:01Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:44:01Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:44:01Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:44:01Z"} [2026-08-19 08:44:04.541] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:44:04.544] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=852.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:44:04.544] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:44:04.584] [DEBUG] QUERY OK source="tms_terminals" db=39.5ms idle=450.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:44:04], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:44:04.586] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=40.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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:44:04.630] [DEBUG] QUERY OK source="tms_terminals" db=41.4ms queue=0.3ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:44:04], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:44:04.632] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.9ms queue=0.2ms idle=44.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:44:04.675] [DEBUG] QUERY OK db=42.5ms queue=0.1ms idle=2.2ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:44:01Z", ~N[2026-08-19 08:44:04], ~N[2026-08-19 08:44:04]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:44:04.676] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73300, oid: "org-id-placeholder", upload_time: "2026-08-19T12:44:01Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:44:04], updated_at: ~N[2026-08-19 08:44:04]} [2026-08-19 08:44:04.676] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:44:01Z", "value" => 80} [2026-08-19 08:44:04.743] [DEBUG] QUERY OK db=65.5ms queue=0.2ms idle=45.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:44:01Z", "80", "battery", 73300, ~N[2026-08-19 08:44:04], ~N[2026-08-19 08:44:04]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:44:04.745] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738015, itemkey: "battery", value: "80", timestamp: "2026-08-19T12:44:01Z", message: nil, status_log_id: 73300, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:44:04], updated_at: ~N[2026-08-19 08:44:04]}} [2026-08-19 08:44:04.745] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:44:01Z", "value" => 50} [2026-08-19 08:44:04.787] [DEBUG] QUERY OK db=42.0ms queue=0.1ms idle=48.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:44:01Z", "50", "memory", 73300, ~N[2026-08-19 08:44:04], ~N[2026-08-19 08:44:04]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:44:04.789] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738016, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:44:01Z", message: "Normal", status_log_id: 73300, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:44:04], updated_at: ~N[2026-08-19 08:44:04]}} [2026-08-19 08:44:04.789] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:44:01Z", "value" => 50} [2026-08-19 08:44:04.854] [DEBUG] QUERY OK db=64.2ms idle=46.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:44:01Z", "50", "cpu", 73300, ~N[2026-08-19 08:44:04], ~N[2026-08-19 08:44:04]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:44:04.856] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738018, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:44:01Z", message: nil, status_log_id: 73300, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:44:04], updated_at: ~N[2026-08-19 08:44:04]}} [2026-08-19 08:44:04.856] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:44:01Z", "value" => "online"} [2026-08-19 08:44:04.940] [DEBUG] QUERY OK db=82.5ms queue=0.7ms idle=69.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:44:01Z", "online", "network", 73300, ~N[2026-08-19 08:44:04], ~N[2026-08-19 08:44:04]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:44:04.942] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738020, itemkey: "network", value: "online", timestamp: "2026-08-19T12:44:01Z", message: nil, status_log_id: 73300, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:44:04], updated_at: ~N[2026-08-19 08:44:04]}} [2026-08-19 08:44:04.942] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:45:19.936] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:45:19.936] [INFO ] Incoming JSON payload: {"oid":"e04bdaea-4548-4595-aead-2ba8eb10c2f8","sn":"98251226730001","uploadTime":"2026-08-19T08:45:19Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"ram_free_mb","value":"1037","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:45:19Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:45:19Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:45:19.939] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "e04bdaea-4548-4595-aead-2ba8eb10c2f8", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:45:19Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:45:19Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:45:19Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:45:19Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:45:19Z", "value" => "1037"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:45:19Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:45:19Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:45:19Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:45:19Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:45:19Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:45:19Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:45:19Z", "vendor" => "morefun"} [2026-08-19 08:45:19.939] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:45:19.939] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:45:19.939] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:45:19.941] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=837.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-08-19 08:45:19.942] [DEBUG] QUERY OK source="parameter_templates" db=0.3ms idle=20.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-08-19 08:45:19.942] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:45:19.943] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.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:140 [2026-08-19 08:45:19.944] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:45:19.979] [DEBUG] QUERY OK source="tms_terminals" db=34.5ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:45:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:45:19.979] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:45:19.980] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=35.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:1184 [2026-08-19 08:45:20.040] [DEBUG] QUERY OK source="tms_terminals" db=59.8ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:45:19], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:45:20.041] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms idle=60.5ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:45:20.074] [DEBUG] QUERY OK db=32.9ms idle=1.4ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["e04bdaea-4548-4595-aead-2ba8eb10c2f8", 33, "2026-08-19T08:45:19Z", ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:45:20.075] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73302, oid: "e04bdaea-4548-4595-aead-2ba8eb10c2f8", upload_time: "2026-08-19T08:45:19Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]} [2026-08-19 08:45:20.075] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:45:19Z", "value" => "morefun"} [2026-08-19 08:45:20.126] [DEBUG] QUERY OK db=49.9ms idle=34.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "morefun", "vendor", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.127] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738023, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.128] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:45:19Z", "value" => "kiosk_launcher"} [2026-08-19 08:45:20.166] [DEBUG] QUERY OK db=38.4ms idle=53.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "kiosk_launcher", "model", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.170] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738025, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.170] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:45:19Z", "value" => "1.0"} [2026-08-19 08:45:20.234] [DEBUG] QUERY OK db=63.3ms idle=44.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "1.0", "app_version", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.235] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738027, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.236] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:45:19Z", "value" => "13"} [2026-08-19 08:45:20.309] [DEBUG] QUERY OK db=72.8ms idle=69.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "13", "android_version", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.310] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738029, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.310] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:45:19Z", "value" => "1037"} [2026-08-19 08:45:20.366] [DEBUG] QUERY OK db=55.5ms idle=77.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "1037", "ram_free_mb", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.367] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738031, itemkey: "ram_free_mb", value: "1037", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.368] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:45:19Z", "value" => "WIFI"} [2026-08-19 08:45:20.436] [DEBUG] QUERY OK db=67.4ms idle=59.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "WIFI", "network_type", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.437] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738033, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.437] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:45:19Z", "value" => "true"} [2026-08-19 08:45:20.482] [DEBUG] QUERY OK db=44.8ms idle=70.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "true", "kiosk_active", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.484] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738035, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.484] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:45:19Z", "value" => ""} [2026-08-19 08:45:20.555] [DEBUG] QUERY OK db=70.0ms idle=48.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:45:19Z", "sim_operator", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.556] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738037, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.556] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"} [2026-08-19 08:45:20.650] [DEBUG] QUERY OK db=93.5ms idle=73.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "UNKNOWN", "sim_number", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.651] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738039, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.651] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"} [2026-08-19 08:45:20.828] [DEBUG] QUERY OK db=176.4ms idle=96.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "UNKNOWN", "sim_iccid", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.830] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738041, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.830] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"} [2026-08-19 08:45:20.886] [DEBUG] QUERY OK db=55.3ms idle=180.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "UNKNOWN", "sim_imsi", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.888] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738043, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.889] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"} [2026-08-19 08:45:20.948] [DEBUG] QUERY OK db=58.6ms idle=61.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "UNKNOWN", "sim_iccid2", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:20.949] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738045, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:20.949] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:45:19Z", "value" => "UNKNOWN"} [2026-08-19 08:45:21.019] [DEBUG] QUERY OK db=69.5ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "UNKNOWN", "sim_imsi2", 73302, ~N[2026-08-19 08:45:20], ~N[2026-08-19 08:45:20]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:21.021] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738047, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:20], updated_at: ~N[2026-08-19 08:45:20]}} [2026-08-19 08:45:21.021] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:45:19Z", "value" => "6"} [2026-08-19 08:45:21.118] [DEBUG] QUERY OK db=97.0ms idle=73.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "6", "data_usage_mb", 73302, ~N[2026-08-19 08:45:21], ~N[2026-08-19 08:45:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:21.122] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738049, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:21], updated_at: ~N[2026-08-19 08:45:21]}} [2026-08-19 08:45:21.122] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:45:19Z", "value" => "0"} [2026-08-19 08:45:21.252] [DEBUG] QUERY OK db=129.4ms queue=0.2ms idle=103.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "0", "mobile_data_mb", 73302, ~N[2026-08-19 08:45:21], ~N[2026-08-19 08:45:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:21.254] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738051, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:21], updated_at: ~N[2026-08-19 08:45:21]}} [2026-08-19 08:45:21.255] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:45:19Z", "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), 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), Scanne" <> ...} [2026-08-19 08:45:21.347] [DEBUG] QUERY OK db=90.6ms queue=0.1ms idle=137.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:45:19Z", "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), 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), Scanne" <> ..., "installed_apps", 73302, ~N[2026-08-19 08:45:21], ~N[2026-08-19 08:45:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:45:21.351] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738054, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:45:19Z", message: nil, status_log_id: 73302, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:45:21], updated_at: ~N[2026-08-19 08:45:21]}} [2026-08-19 08:45:45.993] [ERROR] MyXQL.Connection (#PID<0.1062.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-08-19 08:45:45.994] [ERROR] MyXQL.Connection (#PID<0.1062.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:46.527] [ERROR] MyXQL.Connection (#PID<0.1061.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-08-19 08:45:46.528] [ERROR] MyXQL.Connection (#PID<0.1061.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:47.717] [ERROR] MyXQL.Connection (#PID<0.1062.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:48.283] [ERROR] MyXQL.Connection (#PID<0.1381.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-08-19 08:45:48.285] [ERROR] MyXQL.Connection (#PID<0.1381.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:48.440] [ERROR] MyXQL.Connection (#PID<0.1061.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:49.076] [ERROR] MyXQL.Connection (#PID<0.1066.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-08-19 08:45:49.076] [ERROR] MyXQL.Connection (#PID<0.1067.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-08-19 08:45:49.077] [ERROR] MyXQL.Connection (#PID<0.1066.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:49.078] [ERROR] MyXQL.Connection (#PID<0.1067.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:49.286] [ERROR] MyXQL.Connection (#PID<0.1380.0> (:proc_lib)) disconnected: ** (DBConnection.ConnectionError) socket closed [2026-08-19 08:45:49.290] [ERROR] MyXQL.Connection (#PID<0.1380.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:50.529] [ERROR] MyXQL.Connection (#PID<0.1062.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:50.619] [ERROR] MyXQL.Connection (#PID<0.1066.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:50.620] [ERROR] MyXQL.Connection (#PID<0.1381.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:51.060] [ERROR] MyXQL.Connection (#PID<0.1067.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:51.216] [ERROR] MyXQL.Connection (#PID<0.1061.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:51.587] [ERROR] MyXQL.Connection (#PID<0.1380.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:53.292] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:45:53.292] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"5403646-08-07T10:13:19Z","org.device":[{"itemkey":"status","value":"online","timestamp":"5403646-08-07T10:13:19Z","message":"Device Connected"}]} [2026-08-19 08:45:53.292] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5403646-08-07T10:13:19Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "5403646-08-07T10:13:19Z", "vendor" => "MoreFun"} [2026-08-19 08:45:53.292] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:45:53.292] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:45:53.292] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:45:54.296] [ERROR] MyXQL.Connection (#PID<0.1381.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:54.710] [ERROR] MyXQL.Connection (#PID<0.1067.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:54.722] [ERROR] MyXQL.Connection (#PID<0.1066.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:54.729] [ERROR] MyXQL.Connection (#PID<0.1062.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:55.684] [DEBUG] QUERY ERROR source="parameter_templates" queue=2391.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:45:55.693] [ERROR] GenServer {Tortoise.Registry, {Tortoise.Connection.Controller, "phoenix_client_tms_apps_sushmitha"}} terminating ** (DBConnection.ConnectionError) [Elixir.PlatformCore.Repo] connection not available and request was dropped from queue after 2391ms. This means requests are coming in and your connection pool cannot serve them fast enough. You can address this by: 1. Ensuring your database is available and that you can connect to it 2. Tracking down slow queries and making sure they are running fast enough 3. Increasing the pool_size (although this increases resource consumption) 4. Allowing requests to wait longer by increasing :queue_target and :queue_interval See DBConnection.start_link/2 for more information (ecto_sql 3.13.4) lib/ecto/adapters/sql.ex:1113: Ecto.Adapters.SQL.raise_sql_call_error/1 (ecto_sql 3.13.4) lib/ecto/adapters/sql.ex:1011: Ecto.Adapters.SQL.execute/6 (ecto 3.13.5) lib/ecto/repo/queryable.ex:241: Ecto.Repo.Queryable.execute/4 (ecto 3.13.5) lib/ecto/repo/queryable.ex:19: Ecto.Repo.Queryable.all/3 (ecto 3.13.5) lib/ecto/repo/queryable.ex:163: Ecto.Repo.Queryable.one/3 (tms_core 0.1.0) lib/tms_core/terminal_management/auto_push_service.ex:132: TmsCore.TerminalManagement.AutoPushService.find_best_template/2 (tms_core 0.1.0) lib/tms_core/terminal_management/auto_push_service.ex:36: TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3 (da_product_app 0.1.0) lib/da_product_app/mqtt/handler.ex:135: 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:238: 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, <<48, 143, 2, 0, 25, 116, 109, 115, 47, 115, 116, 97, 116, 117, 115, 47, 54, 49, 50, 53, 49, 48, 50, 48, 55, 57, 56, 48, 48, 49, 123, 34, 111, 105, 100, 34, 58, 34, 111, 114, 103, 45, 105, 100, 45, 112, ...>>}} State: %Tortoise.Connection.Controller{client_id: "phoenix_client_tms_apps_sushmitha", ping: {[], []}, status: :up, awaiting: %{}, handler: %Tortoise.Handler{module: DaProductApp.MQTT.Handler, state: %{client_id: "phoenix_client_tms_apps_sushmitha", online_devices: %{"phoenix_client_tms_apps_sushmitha" => true}}, initial_args: [client_id: "phoenix_client_tms_apps_sushmitha"]}} [2026-08-19 08:45:55.970] [ERROR] MyXQL.Connection (#PID<0.1380.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:58.110] [ERROR] MyXQL.Connection (#PID<0.1061.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:59.624] [ERROR] MyXQL.Connection (#PID<0.1381.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:45:59.771] [ERROR] MyXQL.Connection (#PID<0.1062.0> (:proc_lib)) failed to connect: ** (DBConnection.ConnectionError) (localhost:3306) connection refused - :econnrefused [2026-08-19 08:47:57.922] [INFO ] Performing scheduled filter cache refresh... [2026-08-19 08:47:57.923] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=1815.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-08-19 08:47:57.926] [DEBUG] QUERY OK source="filter_usage" db=2.6ms idle=949.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-08-19 08:47:57.926] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 8 models [2026-08-19 08:47:59.339] [INFO ] Running offline device check... [2026-08-19 08:47:59.339] [INFO ] Starting offline device check... [2026-08-19 08:47:59.341] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=358.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:1234 [2026-08-19 08:47:59.351] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=235.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:47:59.358] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms 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:1249 [2026-08-19 08:47:59.359] [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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.361] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms 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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.362] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.362] [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:1249 [2026-08-19 08:47:59.363] [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:1249 [2026-08-19 08:47:59.364] [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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.365] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.367] [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:1249 [2026-08-19 08:47:59.372] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.373] [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:1249 [2026-08-19 08:47:59.387] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.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:1249 [2026-08-19 08:47:59.391] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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:1249 [2026-08-19 08:47:59.395] [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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.396] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.413] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.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:1249 [2026-08-19 08:47:59.415] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=17.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:47:59.416] [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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.419] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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:1249 [2026-08-19 08:47:59.421] [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 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.423] [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 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=34.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 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=35.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:47:59.460] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.468] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.2ms 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:1249 [2026-08-19 08:47:59.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.474] [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 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.475] [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:1249 [2026-08-19 08:47:59.479] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.480] [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:1249 [2026-08-19 08:47:59.480] [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 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.481] [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:1249 [2026-08-19 08:47:59.482] [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:1249 [2026-08-19 08:47:59.484] [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:1249 [2026-08-19 08:47:59.484] [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:1249 [2026-08-19 08:47:59.485] [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:1249 [2026-08-19 08:47:59.486] [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:1249 [2026-08-19 08:47:59.486] [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:1249 [2026-08-19 08:47:59.487] [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:1249 [2026-08-19 08:47:59.488] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms 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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.489] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.490] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.491] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.491] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.492] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.493] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.493] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.494] [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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.495] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:47:59.495] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:47:59.495] [INFO ] Offline device check completed successfully [2026-08-19 08:49:09.860] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:49:09.860] [INFO ] Incoming JSON payload: {"oid":"d49c20af-ddb2-40c2-be0c-e5e3dca8697e","sn":"98251226730001","uploadTime":"2026-08-19T08:49:03Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"ram_free_mb","value":"1046","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:49:03Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:49:03Z"},{"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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:49:09.861] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "d49c20af-ddb2-40c2-be0c-e5e3dca8697e", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:49:03Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:49:03Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:49:03Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:49:03Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:49:03Z", "value" => "1046"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:49:03Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:49:03Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:49:03Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:49:03Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:49:03Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:49:03Z", "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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:49:03Z", "vendor" => "morefun"} [2026-08-19 08:49:09.861] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:49:09.861] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:49:09.866] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:49:09.870] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms queue=0.9ms idle=757.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-08-19 08:49:09.872] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms queue=0.1ms idle=688.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-08-19 08:49:09.872] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:49:09.876] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms 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:140 [2026-08-19 08:49:09.876] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:49:09.899] [DEBUG] QUERY OK source="tms_terminals" db=22.2ms queue=0.8ms idle=3.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:49:09], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:49:09.899] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:49:09.901] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=24.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:1184 [2026-08-19 08:49:09.947] [DEBUG] QUERY OK source="tms_terminals" db=44.7ms queue=0.1ms idle=2.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:49:09], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:49:09.948] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=1.2ms idle=45.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:49:10.000] [DEBUG] QUERY OK db=51.0ms queue=0.3ms idle=2.0ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["d49c20af-ddb2-40c2-be0c-e5e3dca8697e", 33, "2026-08-19T08:49:03Z", ~N[2026-08-19 08:49:09], ~N[2026-08-19 08:49:09]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:49:10.001] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73305, oid: "d49c20af-ddb2-40c2-be0c-e5e3dca8697e", upload_time: "2026-08-19T08:49:03Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:09], updated_at: ~N[2026-08-19 08:49:09]} [2026-08-19 08:49:10.001] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:49:03Z", "value" => "morefun"} [2026-08-19 08:49:10.041] [DEBUG] QUERY OK db=38.6ms queue=0.5ms idle=53.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "morefun", "vendor", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.042] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738056, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.042] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:49:03Z", "value" => "kiosk_launcher"} [2026-08-19 08:49:10.086] [DEBUG] QUERY OK db=43.4ms queue=0.4ms idle=42.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "kiosk_launcher", "model", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.089] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738058, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.089] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:49:03Z", "value" => "1.0"} [2026-08-19 08:49:10.158] [DEBUG] QUERY OK db=68.3ms idle=48.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "1.0", "app_version", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738060, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.160] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:49:03Z", "value" => "13"} [2026-08-19 08:49:10.189] [DEBUG] QUERY OK db=28.4ms idle=74.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "13", "android_version", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.191] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738062, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.191] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:49:03Z", "value" => "1046"} [2026-08-19 08:49:10.246] [DEBUG] QUERY OK db=53.8ms queue=0.1ms idle=6.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "1046", "ram_free_mb", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.247] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738064, itemkey: "ram_free_mb", value: "1046", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.247] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:49:03Z", "value" => "WIFI"} [2026-08-19 08:49:10.284] [DEBUG] QUERY OK db=36.0ms idle=58.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "WIFI", "network_type", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.286] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738066, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.286] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:49:03Z", "value" => "true"} [2026-08-19 08:49:10.331] [DEBUG] QUERY OK db=44.1ms idle=41.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "true", "kiosk_active", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.332] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738068, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.332] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:49:03Z", "value" => ""} [2026-08-19 08:49:10.370] [DEBUG] QUERY OK db=37.2ms queue=0.3ms idle=48.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:49:03Z", "sim_operator", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.371] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738070, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.371] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"} [2026-08-19 08:49:10.426] [DEBUG] QUERY OK db=54.5ms idle=40.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "UNKNOWN", "sim_number", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.427] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738072, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.428] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"} [2026-08-19 08:49:10.460] [DEBUG] QUERY OK db=31.7ms idle=58.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "UNKNOWN", "sim_iccid", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.461] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738074, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.461] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"} [2026-08-19 08:49:10.514] [DEBUG] QUERY OK db=52.5ms idle=35.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "UNKNOWN", "sim_imsi", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.515] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738076, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.516] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"} [2026-08-19 08:49:10.593] [DEBUG] QUERY OK db=76.7ms queue=0.1ms idle=56.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "UNKNOWN", "sim_iccid2", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.595] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738078, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.595] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:49:03Z", "value" => "UNKNOWN"} [2026-08-19 08:49:10.933] [DEBUG] QUERY OK db=337.3ms idle=81.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "UNKNOWN", "sim_imsi2", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:10.936] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738080, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:10.937] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:49:03Z", "value" => "6"} [2026-08-19 08:49:11.038] [DEBUG] QUERY OK db=98.5ms idle=344.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "6", "data_usage_mb", 73305, ~N[2026-08-19 08:49:10], ~N[2026-08-19 08:49:10]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:11.039] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738083, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:10], updated_at: ~N[2026-08-19 08:49:10]}} [2026-08-19 08:49:11.039] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:49:03Z", "value" => "0"} [2026-08-19 08:49:11.102] [DEBUG] QUERY OK db=62.4ms idle=106.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "0", "mobile_data_mb", 73305, ~N[2026-08-19 08:49:11], ~N[2026-08-19 08:49:11]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:11.104] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738085, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:11], updated_at: ~N[2026-08-19 08:49:11]}} [2026-08-19 08:49:11.105] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:49:03Z", "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), 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), Scanne" <> ...} [2026-08-19 08:49:11.155] [DEBUG] QUERY OK db=48.6ms queue=0.1ms idle=69.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:49:03Z", "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), 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), Scanne" <> ..., "installed_apps", 73305, ~N[2026-08-19 08:49:11], ~N[2026-08-19 08:49:11]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:11.157] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738086, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:49:03Z", message: nil, status_log_id: 73305, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:11], updated_at: ~N[2026-08-19 08:49:11]}} [2026-08-19 08:49:18.286] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:49:23.288] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:49:15Z","org.device":[{"itemkey":"battery","value":80,"timestamp":"2026-08-19T12:49:15Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:49:15Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:49:15Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:49:15Z","message":""}]} [2026-08-19 08:49:28.289] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:49:15Z", "value" => 80}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:49:15Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:49:15Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:49:15Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:49:15Z"} [2026-08-19 08:49:28.289] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:49:28.290] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=1054.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:49:28.291] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:49:28.315] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms queue=0.3ms idle=53.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:49:28], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:49:28.316] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=24.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` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:49:28.367] [DEBUG] QUERY OK source="tms_terminals" db=51.4ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:49:28], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:49:28.369] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.8ms idle=52.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:49:28.405] [DEBUG] QUERY OK db=35.0ms queue=0.3ms idle=1.6ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:49:15Z", ~N[2026-08-19 08:49:28], ~N[2026-08-19 08:49:28]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:49:28.406] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73307, oid: "org-id-placeholder", upload_time: "2026-08-19T12:49:15Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:28], updated_at: ~N[2026-08-19 08:49:28]} [2026-08-19 08:49:28.406] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:49:15Z", "value" => 80} [2026-08-19 08:49:28.440] [DEBUG] QUERY OK db=33.4ms idle=37.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:49:15Z", "80", "battery", 73307, ~N[2026-08-19 08:49:28], ~N[2026-08-19 08:49:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:28.441] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738091, itemkey: "battery", value: "80", timestamp: "2026-08-19T12:49:15Z", message: nil, status_log_id: 73307, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:28], updated_at: ~N[2026-08-19 08:49:28]}} [2026-08-19 08:49:28.442] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:49:15Z", "value" => 50} [2026-08-19 08:49:28.483] [DEBUG] QUERY OK db=40.7ms queue=0.7ms idle=37.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:49:15Z", "50", "memory", 73307, ~N[2026-08-19 08:49:28], ~N[2026-08-19 08:49:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:28.485] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738092, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:49:15Z", message: "Normal", status_log_id: 73307, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:28], updated_at: ~N[2026-08-19 08:49:28]}} [2026-08-19 08:49:28.485] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:49:15Z", "value" => 50} [2026-08-19 08:49:28.544] [DEBUG] QUERY OK db=58.7ms idle=45.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:49:15Z", "50", "cpu", 73307, ~N[2026-08-19 08:49:28], ~N[2026-08-19 08:49:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:28.547] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738093, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:49:15Z", message: nil, status_log_id: 73307, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:28], updated_at: ~N[2026-08-19 08:49:28]}} [2026-08-19 08:49:28.547] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:49:15Z", "value" => "online"} [2026-08-19 08:49:28.731] [DEBUG] QUERY OK db=184.0ms idle=63.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:49:15Z", "online", "network", 73307, ~N[2026-08-19 08:49:28], ~N[2026-08-19 08:49:28]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:49:28.732] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738094, itemkey: "network", value: "online", timestamp: "2026-08-19T12:49:15Z", message: nil, status_log_id: 73307, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:49:28], updated_at: ~N[2026-08-19 08:49:28]}} [2026-08-19 08:49:28.732] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:51:11.515] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:51:11.515] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"5531582-07-27T21:09:17Z","org.device":[{"itemkey":"status","value":"online","timestamp":"5531582-07-27T21:09:17Z","message":"Device Connected"}]} [2026-08-19 08:51:11.515] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5531582-07-27T21:09:17Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "5531582-07-27T21:09:17Z", "vendor" => "MoreFun"} [2026-08-19 08:51:11.516] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:51:11.516] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:51:11.516] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:51:11.519] [DEBUG] QUERY OK source="parameter_templates" db=2.9ms queue=0.1ms idle=1.4e3ms 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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:51:11.520] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=990.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:51:11.522] [DEBUG] QUERY OK source="parameter_template_values" db=1.9ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:51:11.564] [DEBUG] QUERY OK db=40.9ms queue=0.6ms idle=2.8ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 10820, ~U[2026-08-19 08:51:11Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:51:11], ~N[2026-08-19 08:51:11]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:51:11.565] [INFO ] AutoPushService: Created push log 45824 for parameters (template: 7) [2026-08-19 08:51:11.565] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 10820, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:51:11.565] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:51:11.565] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:51:11.597] [DEBUG] QUERY OK db=31.2ms queue=0.4ms idle=34.1ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 10916, ~U[2026-08-19 08:51:11Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:51:11], ~N[2026-08-19 08:51:11]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:51:11.597] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:51:11.597] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 10916, "retry_count" => "3"} [2026-08-19 08:51:11.597] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:51:11.598] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:51:11.599] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms 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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:51:11.599] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:51:11.601] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms 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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:51:11.601] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:51:11.605] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:51:11.605] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:51:11.606] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:51:11.679] [DEBUG] QUERY OK db=71.5ms queue=0.4ms idle=7.3ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 8802, ~U[2026-08-19 08:51:11Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:51:11], ~N[2026-08-19 08:51:11]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:51:11.679] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:51:11.679] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 8802, "retry_count" => "3"} [2026-08-19 08:51:11.679] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:51:11.679] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:51:11.679] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:51:11.681] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=78.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:51:11.681] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:51:11.749] [DEBUG] QUERY OK source="tms_terminals" db=66.9ms idle=3.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:51:11], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:51:11.749] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:51:11.750] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=68.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:51:11.790] [DEBUG] QUERY OK source="tms_terminals" db=39.9ms queue=0.1ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:51:11], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:51:11.791] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.6ms idle=40.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:51:11.836] [DEBUG] QUERY OK db=43.6ms queue=0.2ms idle=1.7ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "5531582-07-27T21:09:17Z", ~N[2026-08-19 08:51:11], ~N[2026-08-19 08:51:11]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:51:11.837] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73309, oid: "org-id-placeholder", upload_time: "5531582-07-27T21:09:17Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:51:11], updated_at: ~N[2026-08-19 08:51:11]} [2026-08-19 08:51:11.837] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "5531582-07-27T21:09:17Z", "value" => "online"} [2026-08-19 08:51:11.895] [DEBUG] QUERY OK db=56.8ms queue=0.3ms idle=46.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "5531582-07-27T21:09:17Z", "online", "status", 73309, ~N[2026-08-19 08:51:11], ~N[2026-08-19 08:51:11]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:51:11.896] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738096, itemkey: "status", value: "online", timestamp: "5531582-07-27T21:09:17Z", message: "Device Connected", status_log_id: 73309, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:51:11], updated_at: ~N[2026-08-19 08:51:11]}} [2026-08-19 08:51:11.896] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey [2026-08-19 08:51:11.896] [WARN ] Unexpected async result [2026-08-19 08:51:11.896] [WARN ] Unexpected async result [2026-08-19 08:51:11.896] [WARN ] Unexpected async result [2026-08-19 08:52:45.866] [INFO ] Received status update for terminal 98251226730001 [2026-08-19 08:52:45.866] [INFO ] Incoming JSON payload: {"oid":"2d842cae-ced8-4de3-9d3c-d617593f90b4","sn":"98251226730001","uploadTime":"2026-08-19T08:52:45Z","vendor":"morefun","model":"kiosk_launcher","org.device":[{"itemkey":"vendor","value":"morefun","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"model","value":"kiosk_launcher","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"app_version","value":"1.0","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"android_version","value":"13","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"ram_free_mb","value":"1044","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"network_type","value":"WIFI","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"kiosk_active","value":"true","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"sim_operator","value":"","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"sim_number","value":"UNKNOWN","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"sim_iccid","value":"UNKNOWN","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"sim_imsi","value":"UNKNOWN","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"sim_iccid2","value":"UNKNOWN","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"sim_imsi2","value":"UNKNOWN","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"data_usage_mb","value":"6","timestamp":"2026-08-19T08:52:45Z"},{"itemkey":"mobile_data_mb","value":"0","timestamp":"2026-08-19T08:52: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), 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 (com.newland.template), 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.mainline.resources.overlay (com.android.wifi.mainline.resource (truncated) [2026-08-19 08:52:45.869] [INFO ] Decoded JSON: %{"model" => "kiosk_launcher", "oid" => "2d842cae-ced8-4de3-9d3c-d617593f90b4", "org.device" => [%{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:52:45Z", "value" => "morefun"}, %{"itemkey" => "model", "timestamp" => "2026-08-19T08:52:45Z", "value" => "kiosk_launcher"}, %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:52:45Z", "value" => "1.0"}, %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:52:45Z", "value" => "13"}, %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:52:45Z", "value" => "1044"}, %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:52:45Z", "value" => "WIFI"}, %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:52:45Z", "value" => "true"}, %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:52:45Z", "value" => ""}, %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"}, %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:52:45Z", "value" => "6"}, %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:52:45Z", "value" => "0"}, %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:52: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), 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), Scanne" <> ...}], "sn" => "98251226730001", "uploadTime" => "2026-08-19T08:52:45Z", "vendor" => "morefun"} [2026-08-19 08:52:45.869] [INFO ] Extracted versions for 98251226730001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:52:45.869] [INFO ] Detected missing versions for 98251226730001, triggering auto-push [2026-08-19 08:52:45.870] [INFO ] AutoPushService: Triggering auto-push for 98251226730001 (morefun kiosk_launcher) - missing version [2026-08-19 08:52:45.871] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=750.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-08-19 08:52:45.872] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=61.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-08-19 08:52:45.872] [WARN ] AutoPushService: No template found for morefun kiosk_launcher [2026-08-19 08:52:45.873] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms 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:140 [2026-08-19 08:52:45.874] [INFO ] Terminal updated: 98251226730001 [2026-08-19 08:52:45.911] [DEBUG] QUERY OK source="tms_terminals" db=36.9ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:52:45], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:52:45.911] [DEBUG] VersionComplianceChecker: 98251226730001 — all versions compliant [2026-08-19 08:52:45.912] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=38.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:1184 [2026-08-19 08:52:45.946] [DEBUG] QUERY OK source="tms_terminals" db=33.6ms idle=1.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:52:45], 33] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:52:45.948] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.7ms queue=0.5ms idle=35.2ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:52:46.004] [DEBUG] QUERY OK db=55.5ms idle=2.8ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2d842cae-ced8-4de3-9d3c-d617593f90b4", 33, "2026-08-19T08:52:45Z", ~N[2026-08-19 08:52:45], ~N[2026-08-19 08:52:45]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:52:46.006] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73311, oid: "2d842cae-ced8-4de3-9d3c-d617593f90b4", upload_time: "2026-08-19T08:52:45Z", terminal_id: 33, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:45], updated_at: ~N[2026-08-19 08:52:45]} [2026-08-19 08:52:46.006] [INFO ] Saving status item: %{"itemkey" => "vendor", "timestamp" => "2026-08-19T08:52:45Z", "value" => "morefun"} [2026-08-19 08:52:46.055] [DEBUG] QUERY OK db=48.4ms idle=58.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "morefun", "vendor", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.057] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738098, itemkey: "vendor", value: "morefun", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.057] [INFO ] Saving status item: %{"itemkey" => "model", "timestamp" => "2026-08-19T08:52:45Z", "value" => "kiosk_launcher"} [2026-08-19 08:52:46.108] [DEBUG] QUERY OK db=50.2ms idle=52.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "kiosk_launcher", "model", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.109] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738100, itemkey: "model", value: "kiosk_launcher", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.109] [INFO ] Saving status item: %{"itemkey" => "app_version", "timestamp" => "2026-08-19T08:52:45Z", "value" => "1.0"} [2026-08-19 08:52:46.155] [DEBUG] QUERY OK db=45.8ms idle=54.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "1.0", "app_version", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.157] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738102, itemkey: "app_version", value: "1.0", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.157] [INFO ] Saving status item: %{"itemkey" => "android_version", "timestamp" => "2026-08-19T08:52:45Z", "value" => "13"} [2026-08-19 08:52:46.222] [DEBUG] QUERY OK db=65.3ms idle=49.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "13", "android_version", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.225] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738104, itemkey: "android_version", value: "13", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.225] [INFO ] Saving status item: %{"itemkey" => "ram_free_mb", "timestamp" => "2026-08-19T08:52:45Z", "value" => "1044"} [2026-08-19 08:52:46.281] [DEBUG] QUERY OK db=55.7ms idle=70.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "1044", "ram_free_mb", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.282] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738106, itemkey: "ram_free_mb", value: "1044", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.282] [INFO ] Saving status item: %{"itemkey" => "network_type", "timestamp" => "2026-08-19T08:52:45Z", "value" => "WIFI"} [2026-08-19 08:52:46.314] [DEBUG] QUERY OK db=31.9ms idle=59.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "WIFI", "network_type", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.315] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738108, itemkey: "network_type", value: "WIFI", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.315] [INFO ] Saving status item: %{"itemkey" => "kiosk_active", "timestamp" => "2026-08-19T08:52:45Z", "value" => "true"} [2026-08-19 08:52:46.394] [DEBUG] QUERY OK db=78.1ms idle=34.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "true", "kiosk_active", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.395] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738110, itemkey: "kiosk_active", value: "true", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.395] [INFO ] Saving status item: %{"itemkey" => "sim_operator", "timestamp" => "2026-08-19T08:52:45Z", "value" => ""} [2026-08-19 08:52:46.440] [DEBUG] QUERY OK db=44.7ms idle=81.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["2026-08-19T08:52:45Z", "sim_operator", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.442] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738112, itemkey: "sim_operator", value: nil, timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.442] [INFO ] Saving status item: %{"itemkey" => "sim_number", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"} [2026-08-19 08:52:46.499] [DEBUG] QUERY OK db=56.4ms idle=48.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "UNKNOWN", "sim_number", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.500] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738114, itemkey: "sim_number", value: "UNKNOWN", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.501] [INFO ] Saving status item: %{"itemkey" => "sim_iccid", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"} [2026-08-19 08:52:46.554] [DEBUG] QUERY OK db=52.9ms idle=60.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "UNKNOWN", "sim_iccid", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.555] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738116, itemkey: "sim_iccid", value: "UNKNOWN", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.555] [INFO ] Saving status item: %{"itemkey" => "sim_imsi", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"} [2026-08-19 08:52:46.706] [DEBUG] QUERY OK db=150.1ms idle=56.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "UNKNOWN", "sim_imsi", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.707] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738118, itemkey: "sim_imsi", value: "UNKNOWN", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.707] [INFO ] Saving status item: %{"itemkey" => "sim_iccid2", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"} [2026-08-19 08:52:46.787] [DEBUG] QUERY OK db=79.3ms idle=153.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "UNKNOWN", "sim_iccid2", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.788] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738120, itemkey: "sim_iccid2", value: "UNKNOWN", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.788] [INFO ] Saving status item: %{"itemkey" => "sim_imsi2", "timestamp" => "2026-08-19T08:52:45Z", "value" => "UNKNOWN"} [2026-08-19 08:52:46.879] [DEBUG] QUERY OK db=89.6ms decode=0.1ms queue=0.2ms idle=82.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "UNKNOWN", "sim_imsi2", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.880] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738122, itemkey: "sim_imsi2", value: "UNKNOWN", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.880] [INFO ] Saving status item: %{"itemkey" => "data_usage_mb", "timestamp" => "2026-08-19T08:52:45Z", "value" => "6"} [2026-08-19 08:52:46.940] [DEBUG] QUERY OK db=59.8ms queue=0.4ms idle=67.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "6", "data_usage_mb", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.943] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738124, itemkey: "data_usage_mb", value: "6", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.943] [INFO ] Saving status item: %{"itemkey" => "mobile_data_mb", "timestamp" => "2026-08-19T08:52:45Z", "value" => "0"} [2026-08-19 08:52:46.986] [DEBUG] QUERY OK db=42.9ms idle=64.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52:45Z", "0", "mobile_data_mb", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:46.987] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738126, itemkey: "mobile_data_mb", value: "0", timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:46.988] [INFO ] Saving status item: %{"itemkey" => "installed_apps", "timestamp" => "2026-08-19T08:52: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), 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), Scanne" <> ...} [2026-08-19 08:52:47.056] [DEBUG] QUERY OK db=66.8ms idle=48.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T08:52: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), 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), Scanne" <> ..., "installed_apps", 73311, ~N[2026-08-19 08:52:46], ~N[2026-08-19 08:52:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:52:47.058] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738128, 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), 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), Scanne" <> ..., timestamp: "2026-08-19T08:52:45Z", message: nil, status_log_id: 73311, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:52:46], updated_at: ~N[2026-08-19 08:52:46]}} [2026-08-19 08:52:59.496] [INFO ] Running offline device check... [2026-08-19 08:53:00.877] [INFO ] Starting offline device check... [2026-08-19 08:53:00.879] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=40.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:1234 [2026-08-19 08:53:00.890] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=36.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:53:00.897] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.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:1249 [2026-08-19 08:53:00.899] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms 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 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.899] [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 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.900] [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:1249 [2026-08-19 08:53:00.901] [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 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.902] [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 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.902] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.903] [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 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.906] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.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 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:1249 [2026-08-19 08:53:00.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.911] [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 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.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 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.927] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.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 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.930] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms 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 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.931] [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 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.948] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.6ms 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 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.950] [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 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.951] [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 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:00.953] [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:1249 [2026-08-19 08:53:00.954] [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:1249 [2026-08-19 08:53:00.954] [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:1249 [2026-08-19 08:53:00.992] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=37.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:1249 [2026-08-19 08:53:00.994] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=38.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`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:1249 [2026-08-19 08:53:00.994] [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 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.002] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.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 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms 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:1249 [2026-08-19 08:53:01.009] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms 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 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.011] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.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:1249 [2026-08-19 08:53:01.013] [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:1249 [2026-08-19 08:53:01.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.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 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.019] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms 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 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.020] [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 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.021] [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 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.022] [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 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.023] [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:1249 [2026-08-19 08:53:01.024] [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 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.026] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=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 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.027] [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 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.027] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.028] [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 [62] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.029] [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 [63] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.030] [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 [64] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.031] [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 [65] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.031] [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 [67] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.032] [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 [69] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.033] [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 [71] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.034] [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 [74] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.035] [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 [78] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.035] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms 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 [80] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.036] [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 [81] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:1249 [2026-08-19 08:53:01.036] [INFO ] Offline device check completed. Found 48 offline devices, updated 0 statuses. [2026-08-19 08:53:01.036] [INFO ] Offline device check completed successfully [2026-08-19 08:54:30.026] [INFO ] Received status update for terminal 61250415798001 [2026-08-19 08:54:30.026] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250415798001","uploadTime":"2026-08-19T12:54:27Z","org.device":[{"itemkey":"battery","value":80,"timestamp":"2026-08-19T12:54:27Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-08-19T12:54:27Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-08-19T12:54:27Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-08-19T12:54:27Z","message":""}]} [2026-08-19 08:54:30.026] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:54:27Z", "value" => 80}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:54:27Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:54:27Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:54:27Z", "value" => "online"}], "sn" => "61250415798001", "uploadTime" => "2026-08-19T12:54:27Z"} [2026-08-19 08:54:30.026] [INFO ] Extracted versions for 61250415798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:54:30.028] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=932.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` = ?) ["61250415798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:54:30.029] [INFO ] Terminal updated: 61250415798001 [2026-08-19 08:54:30.097] [DEBUG] QUERY OK source="tms_terminals" db=66.9ms queue=0.5ms idle=903.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:54:30], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:54:30.100] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms 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.`serial_number` = ?) ["61250415798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:54:30.124] [DEBUG] QUERY OK source="tms_terminals" db=22.7ms idle=0.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:54:30], 1] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:54:30.125] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.8ms queue=0.1ms idle=22.6ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61250415798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:54:30.175] [DEBUG] QUERY OK db=49.9ms idle=1.7ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 1, "2026-08-19T12:54:27Z", ~N[2026-08-19 08:54:30], ~N[2026-08-19 08:54:30]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:54:30.176] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73313, oid: "org-id-placeholder", upload_time: "2026-08-19T12:54:27Z", terminal_id: 1, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:54:30], updated_at: ~N[2026-08-19 08:54:30]} [2026-08-19 08:54:30.176] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-08-19T12:54:27Z", "value" => 80} [2026-08-19 08:54:30.240] [DEBUG] QUERY OK db=63.5ms idle=51.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:54:27Z", "80", "battery", 73313, ~N[2026-08-19 08:54:30], ~N[2026-08-19 08:54:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:54:30.243] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738130, itemkey: "battery", value: "80", timestamp: "2026-08-19T12:54:27Z", message: nil, status_log_id: 73313, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:54:30], updated_at: ~N[2026-08-19 08:54:30]}} [2026-08-19 08:54:30.243] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-08-19T12:54:27Z", "value" => 50} [2026-08-19 08:54:30.308] [DEBUG] QUERY OK db=64.3ms idle=67.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-08-19T12:54:27Z", "50", "memory", 73313, ~N[2026-08-19 08:54:30], ~N[2026-08-19 08:54:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:54:30.309] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738132, itemkey: "memory", value: "50", timestamp: "2026-08-19T12:54:27Z", message: "Normal", status_log_id: 73313, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:54:30], updated_at: ~N[2026-08-19 08:54:30]}} [2026-08-19 08:54:30.310] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-08-19T12:54:27Z", "value" => 50} [2026-08-19 08:54:30.355] [DEBUG] QUERY OK db=44.7ms idle=69.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:54:27Z", "50", "cpu", 73313, ~N[2026-08-19 08:54:30], ~N[2026-08-19 08:54:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:54:30.356] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738134, itemkey: "cpu", value: "50", timestamp: "2026-08-19T12:54:27Z", message: nil, status_log_id: 73313, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:54:30], updated_at: ~N[2026-08-19 08:54:30]}} [2026-08-19 08:54:30.356] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-08-19T12:54:27Z", "value" => "online"} [2026-08-19 08:54:30.400] [DEBUG] QUERY OK db=43.5ms idle=48.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-08-19T12:54:27Z", "online", "network", 73313, ~N[2026-08-19 08:54:30], ~N[2026-08-19 08:54:30]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:54:30.401] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738136, itemkey: "network", value: "online", timestamp: "2026-08-19T12:54:27Z", message: nil, status_log_id: 73313, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:54:30], updated_at: ~N[2026-08-19 08:54:30]}} [2026-08-19 08:54:30.402] [INFO ] Setting terminal 61250415798001 status to 'online' from network itemkey [2026-08-19 08:56:58.253] [INFO ] Received status update for terminal 61251020798001 [2026-08-19 08:56:58.253] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61251020798001","vendor":"MoreFun","model":"SR600","uploadTime":"-2752136-08-17T03:32:40Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-2752136-08-17T03:32:40Z","message":"Device Connected"}]} [2026-08-19 08:56:58.254] [INFO ] Decoded JSON: %{"model" => "SR600", "oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-2752136-08-17T03:32:40Z", "value" => "online"}], "sn" => "61251020798001", "uploadTime" => "-2752136-08-17T03:32:40Z", "vendor" => "MoreFun"} [2026-08-19 08:56:58.255] [INFO ] Extracted versions for 61251020798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-08-19 08:56:58.255] [INFO ] Detected missing versions for 61251020798001, triggering auto-push [2026-08-19 08:56:58.256] [INFO ] AutoPushService: Triggering auto-push for 61251020798001 (MoreFun SR600) - missing version [2026-08-19 08:56:58.256] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=726.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-08-19 08:56:58.258] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=93.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-08-19 08:56:58.259] [DEBUG] QUERY OK source="parameter_template_values" db=1.0ms 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` = ?) [7] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-08-19 08:56:58.314] [DEBUG] QUERY OK db=54.4ms idle=2.2ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`parameters_sent`,`push_type`,`template_id`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", 8099, ~U[2026-08-19 08:56:58Z], 14, "parameter", "SR600", "MoreFun", %{}, "full", 7, "missing_version", "1.0.0", ~N[2026-08-19 08:56:58], ~N[2026-08-19 08:56:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_generic_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:235 [2026-08-19 08:56:58.315] [INFO ] AutoPushService: Created push log 45831 for parameters (template: 7) [2026-08-19 08:56:58.315] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 8099, "retry_count" => "3", "version" => "1.0.0"} [2026-08-19 08:56:58.315] [INFO ] AutoPushService: Sending parameter push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:56:58.315] [INFO ] AutoPushService: Parameter push sent successfully to 61251020798001 [2026-08-19 08:56:58.364] [DEBUG] QUERY OK db=48.2ms idle=56.8ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 2213, ~U[2026-08-19 08:56:58Z], 14, "emv_config", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:56:58], ~N[2026-08-19 08:56:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:56:58.364] [INFO ] AutoPushService: Created push log for emv_config [2026-08-19 08:56:58.364] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 2213, "retry_count" => "3"} [2026-08-19 08:56:58.364] [INFO ] AutoPushService: Sending emv_config push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:56:58.365] [INFO ] AutoPushService: emv_config push sent successfully to 61251020798001 [2026-08-19 08:56:58.366] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=50.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", "SR600"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-08-19 08:56:58.366] [INFO ] KeysConfigService: Generating keys.json for 61251020798001 (SR600) [2026-08-19 08:56:58.367] [DEBUG] QUERY OK source="tms_terminals" db=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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-08-19 08:56:58.367] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 61251020798001 with params: %{"kekKcv" => "112233", "model" => "SR600", "serialNumber" => "61251020798001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-08-19 08:56:58.370] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-08-19 08:56:58.371] [ERROR] KeysConfigService: Failed to generate keys for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:56:58.371] [ERROR] AutoPushService: Failed to generate keys.json for 61251020798001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-08-19 08:56:58.442] [DEBUG] QUERY OK db=69.9ms idle=5.7ms INSERT INTO `parameter_push_logs` (`status`,`request_id`,`log_time`,`terminal_id`,`config_type`,`device_model`,`device_vendor`,`push_type`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?) ["pending", 8195, ~U[2026-08-19 08:56:58Z], 14, "application", "SR600", "MoreFun", "full", "missing_version", ~N[2026-08-19 08:56:58], ~N[2026-08-19 08:56:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_regular_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:427 [2026-08-19 08:56:58.442] [INFO ] AutoPushService: Created push log for application [2026-08-19 08:56:58.442] [INFO ] SR600 MQTT Command: %{"command" => "file_download", "merchant_config" => "true", "request_id" => 8195, "retry_count" => "3"} [2026-08-19 08:56:58.443] [INFO ] AutoPushService: Sending application push to 61251020798001 on topic: /ota/pFppbioOCKlo5c8E/61251020798001/update [2026-08-19 08:56:58.444] [INFO ] AutoPushService: application push sent successfully to 61251020798001 [2026-08-19 08:56:58.444] [INFO ] AutoPushService: Auto-push completed for 61251020798001 [2026-08-19 08:56:58.445] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=77.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` = ?) ["61251020798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:140 [2026-08-19 08:56:58.446] [INFO ] Terminal updated: 61251020798001 [2026-08-19 08:56:58.493] [DEBUG] QUERY OK source="tms_terminals" db=46.7ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-08-19 08:56:58], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:164 [2026-08-19 08:56:58.494] [DEBUG] VersionComplianceChecker: 61251020798001 — all versions compliant [2026-08-19 08:56:58.495] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=48.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` = ?) ["61251020798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:1184 [2026-08-19 08:56:58.539] [DEBUG] QUERY OK source="tms_terminals" db=43.4ms queue=0.3ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-08-19 08:56:58], 14] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:174 [2026-08-19 08:56:58.540] [DEBUG] QUERY OK source="app_upgrade_device_statuses" db=0.3ms idle=4.7ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["61251020798001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 [2026-08-19 08:56:58.592] [DEBUG] QUERY OK db=51.8ms idle=1.1ms INSERT INTO `tms_terminal_status_logs` (`oid`,`terminal_id`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["org-id-placeholder", 14, "-2752136-08-17T03:32:40Z", ~N[2026-08-19 08:56:58], ~N[2026-08-19 08:56:58]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:179 [2026-08-19 08:56:58.595] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 73315, oid: "org-id-placeholder", upload_time: "-2752136-08-17T03:32:40Z", terminal_id: 14, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:56:58], updated_at: ~N[2026-08-19 08:56:58]} [2026-08-19 08:56:58.595] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-2752136-08-17T03:32:40Z", "value" => "online"} [2026-08-19 08:56:58.667] [DEBUG] QUERY OK db=72.1ms idle=55.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-2752136-08-17T03:32:40Z", "online", "status", 73315, ~N[2026-08-19 08:56:58], ~N[2026-08-19 08:56:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:189 [2026-08-19 08:56:58.670] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 738138, itemkey: "status", value: "online", timestamp: "-2752136-08-17T03:32:40Z", message: "Device Connected", status_log_id: 73315, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-08-19 08:56:58], updated_at: ~N[2026-08-19 08:56:58]}} [2026-08-19 08:56:58.670] [INFO ] Setting terminal 61251020798001 status to 'online' from status itemkey