See tv log without launch app

i want to see log when my app is not launch because i send dail request to that app but lg can not launch my app so see log why lg reject dail request.

so i use this command to see log ares-log -d your-tv-name

but the error show chnage profile i already set that to tv profile i share image also.

thank you,
please give me some solution also to see lg tv log without launch app.

phone log for dail

2026-02-26 11:56:48.265 17855-18766 DIALClient com.example.app D DIAL discovery completed. Found 1 devices
2026-02-26 11:56:48.265 17855-18766 FireTVCastPlugin com.example.app D DIAL discovery completed. Found 1 DIAL devices
2026-02-26 11:56:48.467 17855-18767 FireTVCastPlugin com.example.app D :white_check_mark: Found 1 DIAL device(s)
2026-02-26 11:56:51.122 17855-17855 Capacitor/Plugin com.example.app V To native (Capacitor plugin): callbackId: 128592045, pluginId: FireTVCast, methodName: connectToDevice
2026-02-26 11:56:51.123 17855-17855 Capacitor com.example.app V callback: 128592045, pluginId: FireTVCast, methodName: connectToDevice, methodData: {“deviceId”:“dial_192_168_1_6”,“host”:“192.168.1.6”,“port”:8008,“type”:“DIAL”,“packageName”:“com.wisedv.wiseott”}
2026-02-26 11:56:51.124 17855-17944 FireTVCastPlugin com.example.app D Connecting to DIAL device: dial_192_168_1_6 at 192.168.1.6:8008
2026-02-26 11:56:51.125 17855-17944 FireTVCastPlugin com.example.app D Connected to DIAL device: [LG] webOS TV UA82006LA
2026-02-26 11:56:51.126 17855-18773 FireTVCastPlugin com.example.app D :rocket: Launching DIAL app: com.wisedv.wiseott on 192.168.1.6
2026-02-26 11:56:51.126 17855-18773 FireTVCastPlugin com.example.app D :satellite_antenna: DIAL URL: http://192.168.1.6:36866/apps/com.wisedv.wiseott
2026-02-26 11:56:51.126 17855-18773 DIALClient com.example.app D :satellite_antenna: DIAL Launch URL: http://192.168.1.6:36866/apps/com.wisedv.wiseott
2026-02-26 11:56:51.126 17855-18773 DIALClient com.example.app D :satellite_antenna: Application-URL: http://192.168.1.6:36866/apps/
2026-02-26 11:56:51.126 17855-18773 DIALClient com.example.app D :satellite_antenna: App Name: com.wisedv.wiseott
2026-02-26 11:56:51.131 17855-18773 CapacitorCookies com.example.app I Getting cookies at: ‘http://192.168.1.6:36866/apps/com.wisedv.wiseott’
2026-02-26 11:56:51.429 17855-17888 RenderInspector com.example.app W QueueBuffer time out on com.example.app/com.example.app.MainActivity, count=1, avg=29 ms, max=29 ms.
2026-02-26 11:56:56.094 17855-17956 Capacitor/NetworkPlugin com.example.app V Notifying listeners for event networkStatusChange
2026-02-26 11:56:56.094 17855-17956 Capacitor/NetworkPlugin com.example.app D No listeners found for event networkStatusChange
2026-02-26 11:57:02.523 17855-18773 DIALClient com.example.app E :cross_mark: FAILED: Exception - timeout
java.net.SocketTimeoutException: timeout
at com.android.okhttp.okio.Okio$3.newTimeoutException(Okio.java:214)
at com.android.okhttp.okio.AsyncTimeout.exit(AsyncTimeout.java:263)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:217)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:307)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:301)
at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:197)
at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:188)
at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129)
at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750)
at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542)
at com.wiseott.firetvcast.DIALClient.launchApplicationWithDetails(DIALClient.java:243)
at com.wiseott.firetvcast.FireTVCastPlugin.lambda$launchDialAppEmpty$2(FireTVCastPlugin.java:154)
at com.wiseott.firetvcast.FireTVCastPlugin.$r8$lambda$d0zpbf10PekaCQR-b92KnE_FoH0(Unknown Source:0)
at com.wiseott.firetvcast.FireTVCastPlugin$$ExternalSyntheticLambda5.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.net.SocketException: Socket closed
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:144)
at com.android.okhttp.okio.Okio$2.read(Okio.java:138)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:307)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:301)
at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:197)
at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:188)
at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129)
at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750)
at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542)
at com.wiseott.firetvcast.DIALClient.launchApplicationWithDetails(DIALClient.java:243)
at com.wiseott.firetvcast.FireTVCastPlugin.lambda$launchDialAppEmpty$2(FireTVCastPlugin.java:154)
at com.wiseott.firetvcast.FireTVCastPlugin.$r8$lambda$d0zpbf10PekaCQR-b92KnE_FoH0(Unknown Source:0)
at com.wiseott.firetvcast.FireTVCastPlugin$$ExternalSyntheticLambda5.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:923)
2026-02-26 11:57:02.523 17855-18773 FireTVCastPlugin com.example.app D :magnifying_glass_tilted_left: Launch result (length=27): ‘FAILED: Exception - timeout’
2026-02-26 11:57:02.523 17855-18773 FireTVCastPlugin com.example.app D :magnifying_glass_tilted_left: Starts with ‘SUCCESS’: false
2026-02-26 11:57:02.523 17855-18773 FireTVCastPlugin com.example.app D :magnifying_glass_tilted_left: First 10 chars: ‘FAILED: Ex’
2026-02-26 11:57:02.524 17855-18773 FireTVCastPlugin com.example.app E :cross_mark: DIAL app launch failed: FAILED: Exception - timeout
2026-02-26 11:57:02.524 17855-18773 Capacitor com.example.app D Sending plugin error: {“save”:false,“callbackId”:“128592045”,“pluginId”:“FireTVCast”,“methodName”:“connectToDevice”,“success”:false,“error”:{“message”:“LAUNCH_FAILED”,“code”:“FAILED: Exception - timeout”}}
2026-02-26 11:57:07.331 17855-17888 RenderInspector com.example.app W QueueBuffer time out on com.example.app/com.example.app.MainActivity, count=1, avg=22 ms, max=22 ms.
2026-02-26 11:57:08.232 17855-17956 Capacitor/NetworkPlugin com.example.app V Notifying listeners for event networkStatusChange
2026-02-26 11:57:08.232 17855-17956 Capacitor/NetworkPlugin com.example.app D No listeners found for event networkStatusChange
2026-02-26 11:57:10.827 17855-17855 Capacitor/Plugin com.example.app V To native (Capacitor plugin): callbackId: 128592046, pluginId: FireTVCast, methodName: discoverDevices
2026-02-26 11:57:10.827 17855-17855 Capacitor com.example.app V callback: 128592046, pluginId: FireTVCast, methodName: discoverDevices, methodData: {}
2026-02-26 11:57:10.827 17855-17944 FireTVCastPlugin com.example.app D Starting DIAL device discovery (Fire TV + Google TV)…
2026-02-26 11:57:10.829 17855-18785 FireTVCastPlugin com.example.app D Starting DIAL discovery (Fire TV + Google TV)…
2026-02-26 11:57:10.831 17855-18785 DIALClient com.example.app D DIAL discovery packet sent
2026-02-26 11:57:10.878 17855-18785 DIALClient com.example.app D DIAL response from 192.168.1.6:
HTTP/1.1 200 OK
Location: http://192.168.1.6:1574/
Cache-Control: max-age=1800
Server: WebOS/1.5 UPnP/1.0 webOSTV/1.0
EXT:
USN: uuid:b40e8f01-af7c-46c2-8898-7bedee850562::urn:dial-multiscreen-org:service:dial:1
ST: urn:dial-multiscreen-org:service:dial:1
Date: Thu, 26 Feb 2026 06:27:09 GMT
WAKEUP: MAC=64:75:da:40:41:a6;Timeout=60
2026-02-26 11:57:10.884 17855-18785 CapacitorCookies com.example.app I Getting cookies at: ‘http://192.168.1.6:1574/’
2026-02-26 11:57:10.888 17855-18785 CapacitorCookies com.example.app I Getting cookies at: ‘http://192.168.1.6:1574/’
2026-02-26 11:57:10.908 17855-18785 DIALClient com.example.app D Device description XML: 1 0 urn:dial-multiscreen-org:service:dial:1 [LG] webOS TV UA82006LA LG http://www.lge.com 43UA82006LA.DTRDLJL http://www.lge.com WEBOS uuid:b40e8f01-af7c-46c2-8898-7bedee850562 urn:dial-multiscreen-org:service:dial:1 urn:dial-multiscreen-org:serviceId:dial /WebOS_Dial/b40e8f01-af7c-46c2-8898-7bedee850562/scpd.xml /WebOS_Dial/b40e8f01-af7c-46c2-8898-7bedee850562/control.xml /WebOS_Dial/b40e8f01-af7c-46c2-8898-7bedee850562/event.xml
2026-02-26 11:57:10.909 17855-18785 DIALClient com.example.app D Normalized Application-URL with trailing slash: http://192.168.1.6:36866/apps/
2026-02-26 11:57:10.909 17855-18785 DIALClient com.example.app D DIAL device discovered: dial_192_168_1_6 at http://192.168.1.6:36866/apps/
2026-02-26 11:57:10.909 17855-18785 DIALClient com.example.app D DIAL response from 192.168.1.6:
HTTP/1.1 200 OK
Location: http://192.168.1.6:1574/
Cache-Control: max-age=1800
Server: WebOS/1.5 UPnP/1.0 webOSTV/1.0
EXT:
USN: uuid:b40e8f01-af7c-46c2-8898-7bedee850562::urn:dial-multiscreen-org:service:dial:1
ST: urn:dial-multiscreen-org:service:dial:1
Date: Thu, 26 Feb 2026 06:27:09 GMT
WAKEUP: MAC=64:75:da:40:41:a6;Timeout=60

lg tv setup
“requiredPermissions”: [

"internet"**,**

"tv.display"**,**

"tv.window"**,**

"network.operation"**,**

"tv.dial"

],

“dialAppName”: “com.wisedv.wiseott”,

“handlesRelaunch”: true**,**

“transparent”: false**,**

“disableBackHistoryAPI”: true**,**

“visible”: true**,**

“supportPackaging”: true**,**

“deeplinkingParams”: “videoUrl,title,vodType,thumbnail”,

“checkUpdateOnLaunch”: false**,

dail handler file in my app ipk
**
/**

* LG webOS DIAL Handler (FIXED for URL Query Parameters)

* Handles DIAL protocol launch parameters from Android mobile app

* ES5 compatible for LG webOS packaging/minification

*

* IMPORTANT: LG webOS receives DIAL parameters via URL query string,

* NOT via POST body. This handler parses window.PalmSystem.launchParams

* which contains the URL query string.

*/

(function() {

'use strict'**;**



console**.**log('\[DIAL Handler\] Initializing (Fixed for URL params)...')**;**



*// Check if running on LG webOS*

**if** (**typeof** window**.***PalmSystem* **===** 'undefined') {

    console**.**log('\[DIAL Handler\] Not running on LG webOS, skipping initialization')**;**

    **return;**

}



console**.**log('\[DIAL Handler\] LG webOS detected')**;**



*/\*\**

 *\* Parse launch parameters from URL query string*

 *\* LG webOS passes the URL query string as launchParams*

 *\* Format: videoUrl=...&title=...&vodType=...&thumbnail=...&contentId=...*

 *\*/*

function parseLaunchParams() {

    **try** {

        var launchParams **=** window**.***PalmSystem***.***launchParams***;**

        console**.**log('\[DIAL Handler\] Raw launch params:'**,** launchParams)**;**



        **if** (**!**launchParams) {

            console**.**log('\[DIAL Handler\] No launch parameters found')**;**

            **return** null**;**

        }



        *// Handle both formats:*

        *// 1. Direct query string: "videoUrl=...&title=..."*

        *// 2. JSON format: {"videoUrl": "...", "title": "..."}*

        

        var params **=** {}**;**

        

        *// Try parsing as JSON first (for system launches)*

        **try** {

            params **=** JSON**.**parse(launchParams)**;**

            console**.**log('\[DIAL Handler\] Parsed as JSON:'**,** JSON**.**stringify(params))**;**

            

            *// If it's just system params (no videoUrl), return empty*

            **if** (**!**params**.***videoUrl*) {

                console**.**log('\[DIAL Handler\] System launch detected (no video data)')**;**

                **return** null**;**

            }

            

            **return** params**;**

        } **catch** (jsonError) {

            *// Not JSON, parse as URL query string*

            console**.**log('\[DIAL Handler\] Parsing as URL query string...')**;**

        }



        *// Parse URL query string format*

        var pairs **=** launchParams**.**split('&')**;**

        **for** (var i **=** 0**;** i **<** pairs**.**length**;** i**++**) {

            var pair **=** pairs\[i\]**.**split('=')**;**

            var key **=** pair\[0\]**;**

            var value **=** pair\[1\]**;**

            **if** (key **&&** value) {

                params\[key\] **=** decodeURIComponent(value)**;**

            }

        }



        console**.**log('\[DIAL Handler\] Parsed URL parameters:'**,** JSON**.**stringify(params))**;**



        *// Return params even if incomplete (for app open vs video cast detection)*

        **return** params**;**



    } **catch** (error) {

        console**.**error('\[DIAL Handler\] Error parsing launch params:'**,** error)**;**

        **return** null**;**

    }

}



*/\*\**

 *\* Navigate to video player with DIAL parameters*

 *\* If no params, app just opens to profile/home page (normal launch)*

 *\*/*

function launchVideo(**params**) {

    **try** {

        *// Check if this is just an app open (no video data) or actual video cast*

        **if** (**!**params **||** **!**params**.***videoUrl*) {

            console**.**log('\[DIAL Handler\] App opened without video data - showing profile/home page')**;**

            **return;**

        }



        console**.**log('\[DIAL Handler\] Launching video:'**,** params**.***title*)**;**

        console**.**log('\[DIAL Handler\] Video URL:'**,** params**.***videoUrl*)**;**

        console**.**log('\[DIAL Handler\] VOD Type:'**,** params**.***vodType*)**;**

        console**.**log('\[DIAL Handler\] Content ID:'**,** params**.***contentId*)**;**



        var contentId **=** params**.***contentId***;**

        

        *// Fallback: Extract from thumbnail URL if contentId not provided*

        **if** (**!**contentId **&&** params**.***thumbnail*) {

            var idMatch **=** params**.***thumbnail***.**match(/\_(\\d**+**)\\//)**;**

            **if** (idMatch **&&** idMatch\[1\]) {

                contentId **=** idMatch\[1\]**;**

                console**.**log('\[DIAL Handler\] Extracted content ID from thumbnail:'**,** contentId)**;**

            }

        } **else** **if** (contentId) {

            console**.**log('\[DIAL Handler\] Content ID from params:'**,** contentId)**;**

        }



        var playerUrl **=** null**;**



        **if** (params**.***vodType* **===** 'MOVIE' **&&** contentId) {

            playerUrl **=** '/user/movie/' **+** contentId **+** '/watching'**;**

            console**.**log('\[DIAL Handler\] Routing to movie player:'**,** playerUrl)**;**

        } **else** **if** (params**.***vodType* **===** 'EPISODE' **&&** contentId) {

            playerUrl **=** '/user/tvshow/' **+** contentId **+** '/season/1/watching'**;**

            console**.**log('\[DIAL Handler\] Routing to episode player:'**,** playerUrl)**;**

        } **else** {

            console**.**warn('\[DIAL Handler\] Could not determine route, using sessionStorage fallback')**;**

            var videoData **=** {

                url**:** params**.***videoUrl***,**

                title**:** params**.***title***,**

                thumbnail**:** params**.***thumbnail***,**

                type**:** params**.***vodType***,**

                contentId**:** contentId

            }**;**

            sessionStorage**.**setItem('dialCastVideo'**,** JSON**.**stringify(videoData))**;**

            playerUrl **=** '/user/home'**;**

        }



        console**.**log('\[DIAL Handler\] Final navigation URL:'**,** playerUrl)**;**



        *// Navigate to video player after Angular bootstrap*

        setTimeout(function() {

            window**.***location***.***href* **=** playerUrl**;**

            console**.**log('\[DIAL Handler\] Navigation complete')**;**

        }**,** 1500)**;**



    } **catch** (error) {

        console**.**error('\[DIAL Handler\] Error launching video:'**,** error)**;**

    }

}



*/\*\**

 *\* Initialize DIAL handler on app load*

 *\*/*

function initialize() {

    console**.**log('\[DIAL Handler\] Checking for launch parameters...')**;**



    var params **=** parseLaunchParams()**;**



    **if** (params **&&** params**.***videoUrl*) {

        console**.**log('\[DIAL Handler\] Video cast detected from mobile app')**;**

        launchVideo(params)**;**

    } **else** {

        console**.**log('\[DIAL Handler\] Normal app launch (no video cast)')**;**

    }

}



*// Initialize when DOM is ready*

**if** (document**.***readyState* **===** 'loading') {

    document**.**addEventListener('DOMContentLoaded'**,** initialize)**;**

} **else** {

    initialize()**;**

}



*// Expose handler for debugging*

window**.***DIALHandler* **=** {

    parseLaunchParams**:** parseLaunchParams**,**

    launchVideo**:** launchVideo

}**;**



console**.**log('\[DIAL Handler\] Ready (URL params mode)')**;**

})()**;
**

For security reasons, we do not currently recommend using DIAL on webOS TVs. So we don’t provide any guidelines on this. If there are any updates, we will let you know via this developer website. Thank you.

I appreciate that, but can you just tell me why the app is not launching? I need to launch and use it in my application. Can you tell me where I should ask this question or where I can get this information if I need it?

thank you for support

As mentioned above, we don’t provide any guidelines on how to use DIAL on webOS TV. Sorry for not being helpful.

1 Like