<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Tips &amp;amp; Tricks: App-ID Debugging in General Articles</title>
    <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/ta-p/1232109</link>
    <description>&lt;P&gt;This article is inspired from&amp;nbsp;&lt;A href="https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-flow-basic-debugging/tac-p/1232039#M813" target="_blank" rel="noopener"&gt;Tips &amp;amp; Tricks: Flow Basic Debugging&lt;/A&gt;&amp;nbsp;written by&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11943"&gt;@kiwi&lt;/a&gt;&amp;nbsp; and &lt;STRONG&gt;I recommend reading that article &lt;U&gt;&lt;EM&gt;first&lt;/EM&gt;&lt;/U&gt; before reading this one.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Palo Alto Networks NGFWs use App-ID to detect the exact application inside a traffic stream but sometimes traffic will be first classified for example as App-ID "SSL" and after the decryption it can be classified for example as "web-browsing". This is called application shift and sometimes it can cause issues as when traffic App-ID changes it will go again through the Security Policy Match. If you have a rule that blocks "ssl" at the top and then a rule that allows&amp;nbsp; "web-browsing" then this could be an issue&amp;nbsp;&lt;/EM&gt;&lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;EM&gt;&amp;nbsp; Also always add the correct parent apps to your custom apps.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_0-1750327626537.png" style="width: 1086px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68101i79EE9C956E4110B5/image-dimensions/1086x125?v=v2" width="1086" height="125" role="button" title="nikoolayy1_0-1750327626537.png" alt="nikoolayy1_0-1750327626537.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_2-1750327766322.png" style="width: 1092px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68103i1B7C75A97BA7E8E4/image-dimensions/1092x304?v=v2" width="1092" height="304" role="button" title="nikoolayy1_2-1750327766322.png" alt="nikoolayy1_2-1750327766322.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_1-1750327679712.png" style="width: 1076px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68102i26A3F9511CDC6459/image-dimensions/1076x253?v=v2" width="1076" height="253" role="button" title="nikoolayy1_1-1750327679712.png" alt="nikoolayy1_1-1750327679712.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;For more information see:&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;A href="https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm1aCAC" target="_blank" rel="noopener"&gt;How to Prevent Application Shift - Knowledge Base - Palo Alto Networks&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;How can you see your traffic and the original application App-ID after that. What are the next App-ID's for traffic to see the application shift or if the wrong app-id is matched for some reason? How to see if the final app-id for some reason is not the correct one?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Well this is easy as you just need to enable packet debugging for app-id. For example I used "&lt;A href="https://www.example.com/" target="_blank" rel="noopener"&gt;Example Domain&lt;/A&gt;" that is https and it first will be detected as "ssl" and after I configured decryption on the firewall it will be detected as "web-browsing" and you can use a self-generated CA cert as Trusted CA for the SSL emulation as shown in&amp;nbsp;&lt;A href="https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cla8CAC" target="_blank" rel="noopener"&gt;How to Generate a New Self-Signed SSL Certificate - Knowledge Base - Palo Alto Networks.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_0-1750325909323.png" style="width: 1088px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68099i396A34F8147415D3/image-dimensions/1088x98?v=v2" width="1088" height="98" role="button" title="nikoolayy1_0-1750325909323.png" alt="nikoolayy1_0-1750325909323.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For testing I suggest using "route ADD" on windows that will cause traffic from your computer to go to the FW ip address and then use "curl" to start traffic.&amp;nbsp; As &lt;A href="http://www.example.com" target="_blank" rel="noopener"&gt;www.example.com&lt;/A&gt;&amp;nbsp;changes it's IP address as it is behind Akamai, use "&lt;EM&gt;--resolve&lt;/EM&gt;" to not do DNS resolution and "&lt;EM&gt;-kv&lt;/EM&gt;" to ignore the errors from the self-signed cert.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;route ADD 88.0.0.0 MASK 255.0.0.0 192.168.211.138

curl https://www.example.com/ -kv --resolve www.example.com:443:88.221.211.16&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next in the CLI we enable debugging (I am using VM but note on VM devices you may need to disable session offload "set session offload no"):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;debug dataplane packet-diag set filter match source 192.168.211.1 destination 88.221.211.16 destination-port 443

debug dataplane packet-diag set filter match source 88.221.211.16 destination 192.168.211.1 source-port 443

debug dataplane packet-diag set log feature appid all

debug dataplane packet-diag set log on

Packet log is enabled. WARNING: Enabling of debug commands could result in network outage. Not recommended if dataplane CPU is above 60%.
admin@PA-VM&amp;gt; debug dataplane packet-diag show setting

--------------------------------------------------------------------------------
Packet diagnosis setting:
--------------------------------------------------------------------------------
Packet filter
  Enabled:                   yes
  Match pre-parsed packet:   no
  Filter offload:            yes
  Index 1: 192.168.211.1/32[0]-&amp;gt;88.221.211.16/32[443], proto 0
           ingress-interface any, egress-interface any, exclude non-IP
  Index 2: 88.221.211.16/32[443]-&amp;gt;192.168.211.1/32[0], proto 0
           ingress-interface any, egress-interface any, exclude non-IP
--------------------------------------------------------------------------------
Logging
  Enabled:                   yes
  Log-throttle:              no
  Sync-log-by-ticks:         yes
  Features:
    appid   : basic policy dfa agt
  Counters:
  Timeout duration:          60 seconds
  Buffer threshold:          80%
  CPU threshold:             80%
--------------------------------------------------------------------------------
Packet capture
  Enabled:                   no
  Snaplen:                   0
  Username:
--------------------------------------------------------------------------------
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After running the curl command and stop loggin you can see the logs (for non VM platforms "less dp-log pan_packet_diag.log" is the command to see logs as they are not in the managment plane but seperate physical data plane):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;debug dataplane packet-diag set log off

debug dataplane packet-diag aggregate-logs

less mp-log pan_packet_diag.log

...............................
025-06-19 12:08:02.646 +0300 debug: pan_appid_simple_cache_find(pan_appid_cache.c:518): [CACHE] found app 15 for daddr 0-10d3dd58ffff0000(443, 6) not valid time 5240(5659) count 9(16)
2025-06-19 12:08:02.646 +0300 debug: pan_appid_cache_find(pan_appid_cache.c:725): [CACHE] not found appid 0-1d3a8c0ffff0000(62808) -&amp;gt; 0-10d3dd58ffff0000(62808)
2025-06-19 12:08:02.646 +0300 debug: pan_policy_lookup(pan_policy.c:2302): [ACE] Trigger slow match for appid(0) uappid(0)
2025-06-19 12:08:02.646 +0300 debug: pan_policy_match_service(pan_policy.c:1576): match 0,0 for app 0 uapp 0 proto 6 sport 62808 dport 443
192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
2025-06-19 12:08:02.656 +0300  pan_appid_process_lookup(pan_appid_proc.c:2884):         work 0xe03675f100
2025-06-19 12:08:02.656 +0300 debug: pan_session_set_appid_session(pan_appid_priv.h:192): Set appid_session 0xe005fbc100 for session 139
2025-06-19 12:08:02.656 +0300 debug: pan_appid_simple_cache_add_i(pan_appid_cache.c:886): [CACHE] daddr 0-10d3dd58ffff0000(443) appid 15 match appid in cache count 9 threshold 16
2025-06-19 12:08:02.656 +0300  pan_appid_policy_lookup(pan_appid_proc.c:3175): SESSION-DSCP: set session DSCP: 0x00
pan_policy_lookup_fill_arg(normal) : src zone(1) dst zone(2) src(000000000000000000000000c0a8d301:192.168.211.1) src port(62808) dst(00000000000000000000000058ddd310:88.221.211.16) dst port(443) is_ssl(0)
2025-06-19 12:08:02.656 +0300  pan_cfg_app_policy_lookup(pan_cfg_policy.c:1165): Before lookup (short-category-vector): 192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
        app 15 use app 15; do lookup 1, app fst 0, url fst 1, rule(1): rule-1
        category: any,
        session_category(sp): any, any, any, any, any, any
2025-06-19 12:08:02.656 +0300 debug: pan_policy_lookup(pan_policy.c:2302): [ACE] Trigger slow match for appid(15) uappid(0)
2025-06-19 12:08:02.656 +0300 debug: pan_policy_match_service(pan_policy.c:1576): match 0,0 for app 15 uapp 0 proto 6 sport 62808 dport 443
2025-06-19 12:08:02.656 +0300  pan_cfg_set_session_rule_data(pan_cfg_policy.c:1482): SESSION-DSCP: Security policy match, setting session DSCP 0
2025-06-19 12:08:02.656 +0300  pan_cfg_app_policy_lookup(pan_cfg_policy.c:1193): After lookup: 192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
        app 15 use app 15; do lookup 1, app fst 0, url fst 1, rule(1): rule-1
        category: any,

..............................

192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
2025-06-19 12:08:02.676 +0300  pan_appid_process_match(pan_appid_proc.c:1950):  match data 759
2025-06-19 12:08:02.676 +0300 debug: pan_appsig_process_result(pan_app_sigs.c:669): Process app signature [web-browsing] rule [check-get-post-put], dir [cts]
2025-06-19 12:08:02.676 +0300 debug: pan_appsig_process_result(pan_app_sigs.c:695): slot is 1
2025-06-19 12:08:02.676 +0300 debug: pan_appid_check_string_match(pan_app_sigs.c:477): MATCH_ANY: app rule [check-get-post-put] match
2025-06-19 12:08:02.676 +0300 debug: pan_appsig_process_result(pan_app_sigs.c:743): Application found [web-browsing]
2025-06-19 12:08:02.676 +0300 debug: pan_appid_process_match(pan_appid_proc.c:1963): Do policy lookup for session 139 container app: 109
2025-06-19 12:08:02.676 +0300  pan_appid_policy_lookup(pan_appid_proc.c:3175): SESSION-DSCP: set session DSCP: 0x00
pan_policy_lookup_fill_arg(normal) : src zone(1) dst zone(2) s
admin@PA-VM&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The most important parts are "&lt;EM&gt;found app 15&lt;/EM&gt;" and "&lt;EM&gt;Do policy lookup for session 139 container app: 109&lt;/EM&gt;" as this means traffic was first identified as app 15&amp;nbsp; and then switched to app 109 and thanks to&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11943"&gt;@kiwi&lt;/a&gt;&amp;nbsp;the below internal ID can be resolved with the commands below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application id 15

ssl


admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application id 109

web-browsing


admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application name web-browsing

109


admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application name ssl

15

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After that the Palo Alto Networks app wiki at &lt;A href="https://applipedia.paloaltonetworks.com/" target="_blank" rel="noopener"&gt;Application Research Center&lt;/A&gt;&amp;nbsp;can also be used. Also if there is a wrong App ID you can write your own using the Host header as I have shown in my previous article&amp;nbsp;&lt;A href="https://live.paloaltonetworks.com/t5/general-articles/how-to-write-palo-alto-networks-custom-vulnerability-and/ta-p/1228494" target="_blank" rel="noopener"&gt;How to Write Palo Alto Networks Custom Vulnerability and Application Signatures with Examples | Palo Alto Networks.&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;NOTE: There could be more than one app shifts during a session as for example ssl &amp;gt;&amp;nbsp;&amp;nbsp;web-browsing &amp;gt; gmail-base so keep that in mind!&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;That's all folks!&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="nikoolayy1_1-1750326971252.png" style="width: 767px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68100i7C0750279B1062E7/image-dimensions/767x363?v=v2" width="767" height="363" role="button" title="nikoolayy1_1-1750326971252.png" alt="nikoolayy1_1-1750326971252.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 25 Jun 2025 14:53:04 GMT</pubDate>
    <dc:creator>nikoolayy1</dc:creator>
    <dc:date>2025-06-25T14:53:04Z</dc:date>
    <item>
      <title>Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/ta-p/1232109</link>
      <description>&lt;P&gt;This article is inspired from&amp;nbsp;&lt;A href="https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-flow-basic-debugging/tac-p/1232039#M813" target="_blank" rel="noopener"&gt;Tips &amp;amp; Tricks: Flow Basic Debugging&lt;/A&gt;&amp;nbsp;written by&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11943"&gt;@kiwi&lt;/a&gt;&amp;nbsp; and &lt;STRONG&gt;I recommend reading that article &lt;U&gt;&lt;EM&gt;first&lt;/EM&gt;&lt;/U&gt; before reading this one.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Palo Alto Networks NGFWs use App-ID to detect the exact application inside a traffic stream but sometimes traffic will be first classified for example as App-ID "SSL" and after the decryption it can be classified for example as "web-browsing". This is called application shift and sometimes it can cause issues as when traffic App-ID changes it will go again through the Security Policy Match. If you have a rule that blocks "ssl" at the top and then a rule that allows&amp;nbsp; "web-browsing" then this could be an issue&amp;nbsp;&lt;/EM&gt;&lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;EM&gt;&amp;nbsp; Also always add the correct parent apps to your custom apps.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_0-1750327626537.png" style="width: 1086px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68101i79EE9C956E4110B5/image-dimensions/1086x125?v=v2" width="1086" height="125" role="button" title="nikoolayy1_0-1750327626537.png" alt="nikoolayy1_0-1750327626537.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_2-1750327766322.png" style="width: 1092px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68103i1B7C75A97BA7E8E4/image-dimensions/1092x304?v=v2" width="1092" height="304" role="button" title="nikoolayy1_2-1750327766322.png" alt="nikoolayy1_2-1750327766322.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_1-1750327679712.png" style="width: 1076px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68102i26A3F9511CDC6459/image-dimensions/1076x253?v=v2" width="1076" height="253" role="button" title="nikoolayy1_1-1750327679712.png" alt="nikoolayy1_1-1750327679712.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;For more information see:&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;A href="https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm1aCAC" target="_blank" rel="noopener"&gt;How to Prevent Application Shift - Knowledge Base - Palo Alto Networks&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;How can you see your traffic and the original application App-ID after that. What are the next App-ID's for traffic to see the application shift or if the wrong app-id is matched for some reason? How to see if the final app-id for some reason is not the correct one?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Well this is easy as you just need to enable packet debugging for app-id. For example I used "&lt;A href="https://www.example.com/" target="_blank" rel="noopener"&gt;Example Domain&lt;/A&gt;" that is https and it first will be detected as "ssl" and after I configured decryption on the firewall it will be detected as "web-browsing" and you can use a self-generated CA cert as Trusted CA for the SSL emulation as shown in&amp;nbsp;&lt;A href="https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cla8CAC" target="_blank" rel="noopener"&gt;How to Generate a New Self-Signed SSL Certificate - Knowledge Base - Palo Alto Networks.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nikoolayy1_0-1750325909323.png" style="width: 1088px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68099i396A34F8147415D3/image-dimensions/1088x98?v=v2" width="1088" height="98" role="button" title="nikoolayy1_0-1750325909323.png" alt="nikoolayy1_0-1750325909323.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For testing I suggest using "route ADD" on windows that will cause traffic from your computer to go to the FW ip address and then use "curl" to start traffic.&amp;nbsp; As &lt;A href="http://www.example.com" target="_blank" rel="noopener"&gt;www.example.com&lt;/A&gt;&amp;nbsp;changes it's IP address as it is behind Akamai, use "&lt;EM&gt;--resolve&lt;/EM&gt;" to not do DNS resolution and "&lt;EM&gt;-kv&lt;/EM&gt;" to ignore the errors from the self-signed cert.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;route ADD 88.0.0.0 MASK 255.0.0.0 192.168.211.138

curl https://www.example.com/ -kv --resolve www.example.com:443:88.221.211.16&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next in the CLI we enable debugging (I am using VM but note on VM devices you may need to disable session offload "set session offload no"):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;debug dataplane packet-diag set filter match source 192.168.211.1 destination 88.221.211.16 destination-port 443

debug dataplane packet-diag set filter match source 88.221.211.16 destination 192.168.211.1 source-port 443

debug dataplane packet-diag set log feature appid all

debug dataplane packet-diag set log on

Packet log is enabled. WARNING: Enabling of debug commands could result in network outage. Not recommended if dataplane CPU is above 60%.
admin@PA-VM&amp;gt; debug dataplane packet-diag show setting

--------------------------------------------------------------------------------
Packet diagnosis setting:
--------------------------------------------------------------------------------
Packet filter
  Enabled:                   yes
  Match pre-parsed packet:   no
  Filter offload:            yes
  Index 1: 192.168.211.1/32[0]-&amp;gt;88.221.211.16/32[443], proto 0
           ingress-interface any, egress-interface any, exclude non-IP
  Index 2: 88.221.211.16/32[443]-&amp;gt;192.168.211.1/32[0], proto 0
           ingress-interface any, egress-interface any, exclude non-IP
--------------------------------------------------------------------------------
Logging
  Enabled:                   yes
  Log-throttle:              no
  Sync-log-by-ticks:         yes
  Features:
    appid   : basic policy dfa agt
  Counters:
  Timeout duration:          60 seconds
  Buffer threshold:          80%
  CPU threshold:             80%
--------------------------------------------------------------------------------
Packet capture
  Enabled:                   no
  Snaplen:                   0
  Username:
--------------------------------------------------------------------------------
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After running the curl command and stop loggin you can see the logs (for non VM platforms "less dp-log pan_packet_diag.log" is the command to see logs as they are not in the managment plane but seperate physical data plane):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;debug dataplane packet-diag set log off

debug dataplane packet-diag aggregate-logs

less mp-log pan_packet_diag.log

...............................
025-06-19 12:08:02.646 +0300 debug: pan_appid_simple_cache_find(pan_appid_cache.c:518): [CACHE] found app 15 for daddr 0-10d3dd58ffff0000(443, 6) not valid time 5240(5659) count 9(16)
2025-06-19 12:08:02.646 +0300 debug: pan_appid_cache_find(pan_appid_cache.c:725): [CACHE] not found appid 0-1d3a8c0ffff0000(62808) -&amp;gt; 0-10d3dd58ffff0000(62808)
2025-06-19 12:08:02.646 +0300 debug: pan_policy_lookup(pan_policy.c:2302): [ACE] Trigger slow match for appid(0) uappid(0)
2025-06-19 12:08:02.646 +0300 debug: pan_policy_match_service(pan_policy.c:1576): match 0,0 for app 0 uapp 0 proto 6 sport 62808 dport 443
192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
2025-06-19 12:08:02.656 +0300  pan_appid_process_lookup(pan_appid_proc.c:2884):         work 0xe03675f100
2025-06-19 12:08:02.656 +0300 debug: pan_session_set_appid_session(pan_appid_priv.h:192): Set appid_session 0xe005fbc100 for session 139
2025-06-19 12:08:02.656 +0300 debug: pan_appid_simple_cache_add_i(pan_appid_cache.c:886): [CACHE] daddr 0-10d3dd58ffff0000(443) appid 15 match appid in cache count 9 threshold 16
2025-06-19 12:08:02.656 +0300  pan_appid_policy_lookup(pan_appid_proc.c:3175): SESSION-DSCP: set session DSCP: 0x00
pan_policy_lookup_fill_arg(normal) : src zone(1) dst zone(2) src(000000000000000000000000c0a8d301:192.168.211.1) src port(62808) dst(00000000000000000000000058ddd310:88.221.211.16) dst port(443) is_ssl(0)
2025-06-19 12:08:02.656 +0300  pan_cfg_app_policy_lookup(pan_cfg_policy.c:1165): Before lookup (short-category-vector): 192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
        app 15 use app 15; do lookup 1, app fst 0, url fst 1, rule(1): rule-1
        category: any,
        session_category(sp): any, any, any, any, any, any
2025-06-19 12:08:02.656 +0300 debug: pan_policy_lookup(pan_policy.c:2302): [ACE] Trigger slow match for appid(15) uappid(0)
2025-06-19 12:08:02.656 +0300 debug: pan_policy_match_service(pan_policy.c:1576): match 0,0 for app 15 uapp 0 proto 6 sport 62808 dport 443
2025-06-19 12:08:02.656 +0300  pan_cfg_set_session_rule_data(pan_cfg_policy.c:1482): SESSION-DSCP: Security policy match, setting session DSCP 0
2025-06-19 12:08:02.656 +0300  pan_cfg_app_policy_lookup(pan_cfg_policy.c:1193): After lookup: 192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
        app 15 use app 15; do lookup 1, app fst 0, url fst 1, rule(1): rule-1
        category: any,

..............................

192.168.211.1[62808]--&amp;gt;88.221.211.16[443]
2025-06-19 12:08:02.676 +0300  pan_appid_process_match(pan_appid_proc.c:1950):  match data 759
2025-06-19 12:08:02.676 +0300 debug: pan_appsig_process_result(pan_app_sigs.c:669): Process app signature [web-browsing] rule [check-get-post-put], dir [cts]
2025-06-19 12:08:02.676 +0300 debug: pan_appsig_process_result(pan_app_sigs.c:695): slot is 1
2025-06-19 12:08:02.676 +0300 debug: pan_appid_check_string_match(pan_app_sigs.c:477): MATCH_ANY: app rule [check-get-post-put] match
2025-06-19 12:08:02.676 +0300 debug: pan_appsig_process_result(pan_app_sigs.c:743): Application found [web-browsing]
2025-06-19 12:08:02.676 +0300 debug: pan_appid_process_match(pan_appid_proc.c:1963): Do policy lookup for session 139 container app: 109
2025-06-19 12:08:02.676 +0300  pan_appid_policy_lookup(pan_appid_proc.c:3175): SESSION-DSCP: set session DSCP: 0x00
pan_policy_lookup_fill_arg(normal) : src zone(1) dst zone(2) s
admin@PA-VM&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The most important parts are "&lt;EM&gt;found app 15&lt;/EM&gt;" and "&lt;EM&gt;Do policy lookup for session 139 container app: 109&lt;/EM&gt;" as this means traffic was first identified as app 15&amp;nbsp; and then switched to app 109 and thanks to&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/11943"&gt;@kiwi&lt;/a&gt;&amp;nbsp;the below internal ID can be resolved with the commands below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application id 15

ssl


admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application id 109

web-browsing


admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application name web-browsing

109


admin@PA-VM&amp;gt; debug device-server dump idmgr type shared-application name ssl

15

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After that the Palo Alto Networks app wiki at &lt;A href="https://applipedia.paloaltonetworks.com/" target="_blank" rel="noopener"&gt;Application Research Center&lt;/A&gt;&amp;nbsp;can also be used. Also if there is a wrong App ID you can write your own using the Host header as I have shown in my previous article&amp;nbsp;&lt;A href="https://live.paloaltonetworks.com/t5/general-articles/how-to-write-palo-alto-networks-custom-vulnerability-and/ta-p/1228494" target="_blank" rel="noopener"&gt;How to Write Palo Alto Networks Custom Vulnerability and Application Signatures with Examples | Palo Alto Networks.&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;NOTE: There could be more than one app shifts during a session as for example ssl &amp;gt;&amp;nbsp;&amp;nbsp;web-browsing &amp;gt; gmail-base so keep that in mind!&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;That's all folks!&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="nikoolayy1_1-1750326971252.png" style="width: 767px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/68100i7C0750279B1062E7/image-dimensions/767x363?v=v2" width="767" height="363" role="button" title="nikoolayy1_1-1750326971252.png" alt="nikoolayy1_1-1750326971252.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jun 2025 14:53:04 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/ta-p/1232109</guid>
      <dc:creator>nikoolayy1</dc:creator>
      <dc:date>2025-06-25T14:53:04Z</dc:date>
    </item>
    <item>
      <title>Re: Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1232583#M816</link>
      <description>&lt;P&gt;Very cool stuff&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/153031"&gt;@nikoolayy1&lt;/a&gt;&amp;nbsp;!&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jun 2025 15:07:08 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1232583#M816</guid>
      <dc:creator>kiwi</dc:creator>
      <dc:date>2025-06-25T15:07:08Z</dc:date>
    </item>
    <item>
      <title>Re: Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1232696#M817</link>
      <description>&lt;P&gt;Thanks for sharing with the community&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/153031"&gt;@nikoolayy1&lt;/a&gt;&amp;nbsp;!&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jun 2025 17:34:38 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1232696#M817</guid>
      <dc:creator>crasmussen</dc:creator>
      <dc:date>2025-06-26T17:34:38Z</dc:date>
    </item>
    <item>
      <title>Re: Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1232697#M818</link>
      <description>&lt;P&gt;This is an absolutely brilliant deep dive into App-ID debugging! The explanation of application shift and the practical CLI commands for packet debugging are incredibly helpful. The "route ADD" and "curl" examples made it super easy to follow along. Huge thanks for sharing these tips and tricks; this is exactly the kind of valuable insight that makes troubleshooting so much clearer!&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/153031"&gt;@nikoolayy1&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jun 2025 18:01:54 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1232697#M818</guid>
      <dc:creator>jforsythe</dc:creator>
      <dc:date>2025-06-26T18:01:54Z</dc:date>
    </item>
    <item>
      <title>Re: Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1235834#M824</link>
      <description>&lt;P&gt;thanks for sharing this helpful information in the community.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 06:20:17 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1235834#M824</guid>
      <dc:creator>terryguerrero</dc:creator>
      <dc:date>2025-08-12T06:20:17Z</dc:date>
    </item>
    <item>
      <title>Re: Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1235835#M825</link>
      <description>&lt;P&gt;good information @&lt;A href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/153031" target="_blank"&gt;nikoolayy1&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 06:28:39 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1235835#M825</guid>
      <dc:creator>wedlandshannon</dc:creator>
      <dc:date>2025-08-12T06:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: Tips &amp; Tricks: App-ID Debugging</title>
      <link>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1236149#M826</link>
      <description>&lt;P&gt;Thank you for sharing useful information.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 Aug 2025 08:28:08 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/general-articles/tips-amp-tricks-app-id-debugging/tac-p/1236149#M826</guid>
      <dc:creator>Vinod_Ola</dc:creator>
      <dc:date>2025-08-18T08:28:08Z</dc:date>
    </item>
  </channel>
</rss>

