<?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 RUM data is assigned to a different application than expected in Troubleshooting</title>
    <link>https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156</link>
    <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="2"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H1&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1&gt;The problem&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection" target="_blank" rel="nofollow noopener"&gt;automatic RUM injection&lt;/A&gt;, the application to which RUM data is assigned is determined by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#application-detection-rules" target="_blank" rel="nofollow noopener"&gt;application detection rules&lt;/A&gt;. Occasionally, however, the captured RUM data may be mapped to a different application than expected.&lt;/P&gt;
&lt;P&gt;This guide is designed to help you systematically analyze such issues. For best results, we recommend working through the steps in sequence.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;How application detection rules are applied&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To effectively troubleshoot application detection issues, it's essential to understand how application detection rules are applied. Please read&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#rum-appdetection-appparam" target="_blank" rel="nofollow noopener"&gt;How does Dynatrace apply your application detection rules?&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;before continuing—this knowledge is crucial for following the guide.&lt;/P&gt;
&lt;P&gt;When the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/observe/digital-experience/new-rum-experience" target="_blank" rel="nofollow noopener"&gt;New Real User Monitoring Experience&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is enabled for an application, a portion of the beacons include the application ID in the query string parameter&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ai&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;instead of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Double-check your application detection rules&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before diving into the triage section, take a moment to review your application detection rules to ensure they’re configured correctly.&lt;/P&gt;
&lt;P&gt;RUM application detection uses the URL structure&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;scheme://host:port/path?query&lt;/CODE&gt;, where the query string is optional and default ports (80 for HTTP and 443 for HTTPS) are omitted. Watch out for these common pitfalls:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If you're using a URL matcher such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;URL contains&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;URL ends with&lt;/EM&gt;, ensure that the pattern does not include a fragment identifier (e.g.,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;#section&lt;/CODE&gt;). Fragment identifiers are only used by the browser and are not part of the HTTP request.&lt;/LI&gt;
&lt;LI&gt;Avoid using patterns that include the scheme&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;https://&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;unless you're certain that HTTPS isn't terminated before reaching the first instrumented tier.&lt;/LI&gt;
&lt;LI&gt;When using domain matchers such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Domain (host) contains&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Domain (host) ends with&lt;/EM&gt;, ensure the pattern includes only the host part of the URL or a portion of it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;To find out which application detection rule applies to a specific URL, use the application detection rule checker under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Web and mobile monitoring → Application detection → Check your existing detection rules&lt;/EM&gt;. Keep in mind that this tool doesn’t account for factors like URL rewriting—those will be addressed later in this guide.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="h_4828443767131758026275306"&gt;Triage&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following analysis steps will help you determine which category of common issues—described later in this article—may be relevant to your situation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Find an affected load action&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Start by identifying a load action that is mapped to the wrong application. If you're investigating an XHR or custom action that appears in the wrong application, look for the corresponding load action on the same page.&lt;/P&gt;
&lt;P&gt;To do this, check the session details page to see where the user navigated before the XHR or custom action was triggered.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If you can only find affected XHR actions and no corresponding load action is available, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_76648680711758025797808" target="_self"&gt;Application detected for XHR actions does not reflect recent application detection rule changes&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Find the trace for the HTML document request&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To navigate from the load action to the trace for the HTML document request:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Click on the document request within the load action.&lt;/LI&gt;
&lt;LI&gt;Click the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;View trace&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;button.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app_detection_find_trace.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/30102iE8B809AEC8DF7FA6/image-size/large?v=v2&amp;amp;px=999" role="button" title="app_detection_find_trace.png" alt="app_detection_find_trace.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If none of the affected load actions includes a trace link for the document request, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_1921021323681758026013208" target="_self"&gt;Caching issues after a change of the application detection rules&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Identify the URL reaching the OneAgent&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once you've located the relevant trace, click the topmost entry. This will open a detailed view on the right-hand side, where you can find the host and the URL path and query listed as separate fields.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app_detection_find_trace_URL.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/30104i945A43F081D0E57A/image-size/large?v=v2&amp;amp;px=999" role="button" title="app_detection_find_trace_URL.png" alt="app_detection_find_trace_URL.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Next, compare this URL with the one associated with the load action. Look for any discrepancies between the two.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If you notice differences, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_2824999845131758026160553" target="_self"&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Find out which application detection rule was applied to a request&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The view on the right also shows the application detection rule that was used. By clicking on it, you can jump directly to its configuration:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app_detection_find_rule.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/30105iCF0B4DCF18C6A930/image-size/large?v=v2&amp;amp;px=999" role="button" title="app_detection_find_rule.png" alt="app_detection_find_rule.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If this view shows the rule you expect to match—even though the RUM data is assigned to an unexpected application—check the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_1937273816011758026246938" target="_self"&gt;x-dynatrace-application header is not propagated&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Common issues&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This section lists frequently encountered app detection problems and their solutions. For best results, start with the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_4828443767131758026275306" target="_self"&gt;Triage&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;section above to identify which issue applies to your case, then refer to the relevant subsection below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="h_2824999845131758026160553"&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As explained in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#rum-appdetection-appparam" target="_blank" rel="nofollow noopener"&gt;How does Dynatrace apply your application detection rules?&lt;/A&gt;, your application detection rules are evaluated by OneAgent on the first instrumented tier of your application. However, there may be an uninstrumented component, such as a reverse proxy or a load balancer, between the browser and the first instrumented tier of your application that rewrites the URL. As a result, the URL used for application detection may differ from the URL that was originally requested by the browser.&lt;/P&gt;
&lt;H3&gt;Uninstrumented component sets the original host in a header not included in the default host name determination configuration&lt;/H3&gt;
&lt;P&gt;OneAgent can recover the original host name requested by the browser by evaluating specific request headers, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#rum-appdetection-uninstrumentedcomponent" target="_blank" rel="nofollow noopener"&gt;What can I do if an uninstrumented component rewrites parts of the URL?&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;You can view and configure these headers under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Web and mobile monitoring → Host name determination&lt;/EM&gt;. The list is evaluated in order of priority, starting from the top. It includes several default entries, with the de facto standard header&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;having the highest priority by default.&lt;/P&gt;
&lt;P&gt;There are cases where you may need to add additional entries to this list:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The component uses the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Forwarded&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header: This standardized replacement for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-*&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;headers includes multiple fields. It is part of the default host name determination list in environments created since Dynatrace version 1.267. Since OneAgents have long supported parsing this header, you can manually add it to the list in older environments if needed.&lt;/LI&gt;
&lt;LI&gt;The component uses a proprietary header: Any header used for host name determination—except for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Forwarded&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header—must follow the format of the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;&amp;lt;host&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for default ports, or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;otherwise. A comma-separated list of such entries is also supported, with the assumption that the first entry represents the original host name.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;When adding a new entry, place it above the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header entry, which is present in every HTTP/1.1 request.&lt;/P&gt;
&lt;P&gt;If you want to check whether a specific request header reaches OneAgent, you can add it as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/request-attributes" target="_blank" rel="nofollow noopener"&gt;request attribute&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":warning:"&gt;⚠️&lt;/span&gt; Make sure your host name determination configuration does not include the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Referer&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header, as it is not suitable for this purpose and will lead to unpredictable results.&lt;/P&gt;
&lt;H3&gt;Uninstrumented component does not set a header with the original host&lt;/H3&gt;
&lt;P&gt;If the uninstrumented component does not set a header containing the original host, there are two possible approaches:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Preferred:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Configure the component (or the one closest to the browser, if multiple are involved) to set a header such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-Host&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Alternative:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Use the internal host name in the application detection rule. Note: The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookie-domain#automatic-cookie-domain-determination" target="_blank" rel="nofollow noopener"&gt;automatic determination of the cookie domain&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;depends on the host detection result. If only the internal host name is available to OneAgent, the cookie domain may need to be&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookie-domain#manual-cookie-domain-config" target="_blank" rel="nofollow noopener"&gt;configured manually&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Application detection rule uses a URL path segment that is removed by URL rewriting&lt;/H3&gt;
&lt;P&gt;In some cases, an application detection rule may rely on a part of the URL path that gets removed during URL rewriting by an uninstrumented component. Unlike the host portion of the URL, there is no built-in mechanism to recover the original path, since most components do not forward this information via headers.&lt;/P&gt;
&lt;P&gt;If this applies to your setup, you’ll need to adjust the application detection rule to use a different part of the URL that remains intact after rewriting.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="h_1937273816011758026246938"&gt;x-dynatrace-application header is not propagated&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In multi-tier applications, the application is detected on the first instrumented tier—usually a proxy—while the RUM JavaScript is injected on the tier that generates the HTML response. On the typical proxy technologies (Apache, Nginx, IIS), OneAgent sets the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header on the request to propagate the detected application from tier to tier.&lt;/P&gt;
&lt;P&gt;If the topmost node in the trace shows the expected application, but the captured RUM data is assigned to a different application, it's likely that your application spans at least two tiers and the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header is not being propagated between them.&lt;/P&gt;
&lt;H3&gt;Scenario 1: Apache, Nginx, or IIS on the first instrumented tier&lt;/H3&gt;
&lt;P&gt;If the first instrumented tier is Apache, Nginx, or IIS, OneAgent sets the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header there, but your infrastructure removes it before it reaches the injecting tier. To verify, you can add the header as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/request-attributes" target="_blank" rel="nofollow noopener"&gt;request attribute&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;As a solution, please review the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-firewall" target="_blank" rel="nofollow noopener"&gt;Firewall constraints for RUM&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and configure your infrastructure accordingly.&lt;/P&gt;
&lt;H3&gt;Scenario 2: Java, Node.js, or ASP.NET Core on the first instrumented tier&lt;/H3&gt;
&lt;P&gt;If the first instrumented tier is a Java, Node.js, or ASP.NET Core process, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header is not set, since these technologies are not typically used as proxies. The following sections describe three different workarounds and the scenarios where they are applicable.&lt;/P&gt;
&lt;H4&gt;Workaround 1: Disabling RUM on all tiers except for the first one&lt;/H4&gt;
&lt;P&gt;With Node.js or ASP.NET Core on the first tier,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-for-process-groups#disable-rum-for-a-process-group" target="_blank" rel="nofollow noopener"&gt;disabling RUM&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on all other tiers is a viable workaround. With this configuration, the OneAgent on the first tier will take over injection.&lt;/P&gt;
&lt;P&gt;With a servlet-based Java application on the first tier, this workaround can only work if the HTML reaches the OneAgent that instruments it in an uncompressed form.&lt;/P&gt;
&lt;P&gt;With Netty on the first tier, this workaround is not applicable, since RUM injection is not supported for Netty.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":warning:"&gt;⚠️&lt;/span&gt; Do not use this workaround if you'd need to disable RUM on a tier that acts as the entry point for other requests or another application.&lt;/P&gt;
&lt;H4&gt;Workaround 2: Using domain-based application detection rules&lt;/H4&gt;
&lt;P&gt;Basing your application detection rule solely on the domain ensures consistent application detection across tiers, provided the component on the first tier propagates the host name using a header such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-Host&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;If host name propagation hasn't been configured yet, adjust your component accordingly and ensure that the relevant header appears above the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header in the list under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Web and mobile monitoring → Host name determination&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;To verify that the header reaches the injecting tier, you can add it as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/request-attributes" target="_blank" rel="nofollow noopener"&gt;request attribute&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;Workaround 3: Defining application detection rules based on the the internal URL&lt;/H4&gt;
&lt;P&gt;If neither of the previous approaches is applicable, you can define application detection rules based on the internal URL observed by OneAgent on the injecting tier. To identify the internal URL, inspect the trace.&lt;/P&gt;
&lt;P&gt;When using this setup, it's important to ensure the cookie domain—normally also derived from the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header—is correctly configured:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Compare the external and internal URLs to determine whether they share a common&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://web.dev/articles/same-site-same-origin" target="_blank" rel="nofollow noopener"&gt;effective top-level domain plus one (eTLD+1)&lt;/A&gt;. If they do, the cookie domain should already be correctly determined on the injecting tier.&lt;/LI&gt;
&lt;LI&gt;If they do not, you’ll need to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookie-domain#manual-cookie-domain-config" target="_blank" rel="nofollow noopener"&gt;manually configure the cookie domain&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="h_1921021323681758026013208"&gt;Caching issues after a change of the application detection rules&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Caching can delay the immediate effectiveness of application detection rule changes in the following two primary scenarios.&lt;/P&gt;
&lt;H3&gt;Requests are handled by a CDN or caching proxy&lt;/H3&gt;
&lt;P&gt;When HTML is served through a CDN or caching proxy, OneAgent can inject the RUM JavaScript only if the HTML is fetched from the instrumented origin server—typically after the cached version has been evicted.&lt;/P&gt;
&lt;P&gt;If you've updated your application detection rules in this setup, the changes won't take effect until OneAgent is able to inject the RUM JavaScript again with an updated&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;parameter in the configuration.&lt;/P&gt;
&lt;P&gt;If you don't want to wait until the CDN edge servers serve the freshly injected page, manually clear the CDN cache to force a request to the origin server.&lt;/P&gt;
&lt;H3&gt;Long expiration times or missing caching policy&lt;/H3&gt;
&lt;P&gt;Check the caching headers on the response for the HTML document if you observe the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You cannot reproduce the issue with a cleared cache.&lt;/LI&gt;
&lt;LI&gt;The affected load actions do not have a drilldown to a trace for the request to the HTML document.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The following response headers control how long a resource may be cached before it expires:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;Cache-Control: max-age&lt;/CODE&gt;: Defines the cache duration in seconds, e.g.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Cache-Control: max-age=2592000&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;Expires&lt;/CODE&gt;: Specifies an absolute expiration date in HTTP date format, e.g.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Expires: Sun, 01 Nov 2020 06:47:04 GMT&lt;/CODE&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If either of these headers is present, the cached HTML may continue to be served with the previously injected app parameter until the cache expires. As a result, changes to application detection rules won’t take effect immediately.&lt;/P&gt;
&lt;P&gt;If an application does not specify an explicit expiration time, then this does not mean that the page may not be cached. The cache may use the page without revalidation as long as it deems appropriate, unless the response contains directives that prevent this, for example,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Cache-Control: no-store&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;In these situations, the only resolution is to wait until the outdated HTML document is evicted from all caches and OneAgent can inject the updated configuration.&lt;/P&gt;
&lt;P&gt;To avoid similar delays in the future, consider adjusting your caching strategy. Use short expiration times, or rely on validation-based caching using the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ETag&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Last-Modified&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;headers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="h_76648680711758025797808"&gt;Application detected for XHR actions does not reflect recent application detection rule changes&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This scenario applies if you observe the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Load actions are correctly assigned to the expected application.&lt;/LI&gt;
&lt;LI&gt;However, XHR actions from some users continue to appear under a different application— the one where the page was assigned before a recent change to the application detection rules.&lt;/LI&gt;
&lt;LI&gt;It is not possible to reproduce the issue with a cleared browser cache.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This behavior usually appears in single-page applications (SPAs). Instead of loading a new HTML page from the server, SPAs dynamically update the current page using XHRs. If the HTML was initially loaded before the application detection rules were updated, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;parameter embedded in the page may still reflect the previous configuration. As a result, XHR actions are mapped to the outdated application.&lt;/P&gt;
&lt;P&gt;This situation resolves automatically once the user refreshes the page or the application triggers a full reload. Until then, the outdated mapping will persist.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;What's Next?&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you've completed the troubleshooting steps above but still haven't identified the root cause, please contact Dynatrace via the in-product chat or by creating a support ticket.&lt;/P&gt;
&lt;P&gt;To help our support team investigate efficiently, include the following information:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/How-to-generate-a-HAR-file/ta-p/223391" target="_blank" rel="nofollow noopener"&gt;HAR file&lt;/A&gt;, or, preferably, a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/Web-applications-Use-Fiddler-for-debugging/ta-p/239009" target="_blank" rel="nofollow noopener"&gt;Fiddler session&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;capturing the full scenario.&lt;/LI&gt;
&lt;LI&gt;A link to the affected user session.&lt;/LI&gt;
&lt;LI&gt;A brief summary of the troubleshooting steps you've already completed.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Providing this information upfront will help accelerate the resolution process.&lt;/P&gt;
&lt;/DIV&gt;</description>
    <pubDate>Mon, 29 Sep 2025 09:43:16 GMT</pubDate>
    <dc:creator>MargitM</dc:creator>
    <dc:date>2025-09-29T09:43:16Z</dc:date>
    <item>
      <title>RUM data is assigned to a different application than expected</title>
      <link>https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156</link>
      <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="2"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H1&gt;&amp;nbsp;&lt;/H1&gt;
&lt;H1&gt;The problem&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection" target="_blank" rel="nofollow noopener"&gt;automatic RUM injection&lt;/A&gt;, the application to which RUM data is assigned is determined by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#application-detection-rules" target="_blank" rel="nofollow noopener"&gt;application detection rules&lt;/A&gt;. Occasionally, however, the captured RUM data may be mapped to a different application than expected.&lt;/P&gt;
&lt;P&gt;This guide is designed to help you systematically analyze such issues. For best results, we recommend working through the steps in sequence.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;How application detection rules are applied&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To effectively troubleshoot application detection issues, it's essential to understand how application detection rules are applied. Please read&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#rum-appdetection-appparam" target="_blank" rel="nofollow noopener"&gt;How does Dynatrace apply your application detection rules?&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;before continuing—this knowledge is crucial for following the guide.&lt;/P&gt;
&lt;P&gt;When the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/observe/digital-experience/new-rum-experience" target="_blank" rel="nofollow noopener"&gt;New Real User Monitoring Experience&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is enabled for an application, a portion of the beacons include the application ID in the query string parameter&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ai&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;instead of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Double-check your application detection rules&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before diving into the triage section, take a moment to review your application detection rules to ensure they’re configured correctly.&lt;/P&gt;
&lt;P&gt;RUM application detection uses the URL structure&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;scheme://host:port/path?query&lt;/CODE&gt;, where the query string is optional and default ports (80 for HTTP and 443 for HTTPS) are omitted. Watch out for these common pitfalls:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If you're using a URL matcher such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;URL contains&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;URL ends with&lt;/EM&gt;, ensure that the pattern does not include a fragment identifier (e.g.,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;#section&lt;/CODE&gt;). Fragment identifiers are only used by the browser and are not part of the HTTP request.&lt;/LI&gt;
&lt;LI&gt;Avoid using patterns that include the scheme&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;https://&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;unless you're certain that HTTPS isn't terminated before reaching the first instrumented tier.&lt;/LI&gt;
&lt;LI&gt;When using domain matchers such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Domain (host) contains&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Domain (host) ends with&lt;/EM&gt;, ensure the pattern includes only the host part of the URL or a portion of it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;To find out which application detection rule applies to a specific URL, use the application detection rule checker under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Web and mobile monitoring → Application detection → Check your existing detection rules&lt;/EM&gt;. Keep in mind that this tool doesn’t account for factors like URL rewriting—those will be addressed later in this guide.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="h_4828443767131758026275306"&gt;Triage&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following analysis steps will help you determine which category of common issues—described later in this article—may be relevant to your situation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Find an affected load action&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Start by identifying a load action that is mapped to the wrong application. If you're investigating an XHR or custom action that appears in the wrong application, look for the corresponding load action on the same page.&lt;/P&gt;
&lt;P&gt;To do this, check the session details page to see where the user navigated before the XHR or custom action was triggered.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If you can only find affected XHR actions and no corresponding load action is available, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_76648680711758025797808" target="_self"&gt;Application detected for XHR actions does not reflect recent application detection rule changes&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Find the trace for the HTML document request&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To navigate from the load action to the trace for the HTML document request:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Click on the document request within the load action.&lt;/LI&gt;
&lt;LI&gt;Click the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;View trace&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;button.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app_detection_find_trace.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/30102iE8B809AEC8DF7FA6/image-size/large?v=v2&amp;amp;px=999" role="button" title="app_detection_find_trace.png" alt="app_detection_find_trace.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If none of the affected load actions includes a trace link for the document request, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_1921021323681758026013208" target="_self"&gt;Caching issues after a change of the application detection rules&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Identify the URL reaching the OneAgent&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once you've located the relevant trace, click the topmost entry. This will open a detailed view on the right-hand side, where you can find the host and the URL path and query listed as separate fields.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app_detection_find_trace_URL.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/30104i945A43F081D0E57A/image-size/large?v=v2&amp;amp;px=999" role="button" title="app_detection_find_trace_URL.png" alt="app_detection_find_trace_URL.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Next, compare this URL with the one associated with the load action. Look for any discrepancies between the two.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If you notice differences, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_2824999845131758026160553" target="_self"&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Find out which application detection rule was applied to a request&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The view on the right also shows the application detection rule that was used. By clicking on it, you can jump directly to its configuration:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="app_detection_find_rule.png" style="width: 999px;"&gt;&lt;img src="https://community.dynatrace.com/t5/image/serverpage/image-id/30105iCF0B4DCF18C6A930/image-size/large?v=v2&amp;amp;px=999" role="button" title="app_detection_find_rule.png" alt="app_detection_find_rule.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt; If this view shows the rule you expect to match—even though the RUM data is assigned to an unexpected application—check the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_1937273816011758026246938" target="_self"&gt;x-dynatrace-application header is not propagated&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Common issues&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This section lists frequently encountered app detection problems and their solutions. For best results, start with the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_4828443767131758026275306" target="_self"&gt;Triage&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;section above to identify which issue applies to your case, then refer to the relevant subsection below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="h_2824999845131758026160553"&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As explained in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#rum-appdetection-appparam" target="_blank" rel="nofollow noopener"&gt;How does Dynatrace apply your application detection rules?&lt;/A&gt;, your application detection rules are evaluated by OneAgent on the first instrumented tier of your application. However, there may be an uninstrumented component, such as a reverse proxy or a load balancer, between the browser and the first instrumented tier of your application that rewrites the URL. As a result, the URL used for application detection may differ from the URL that was originally requested by the browser.&lt;/P&gt;
&lt;H3&gt;Uninstrumented component sets the original host in a header not included in the default host name determination configuration&lt;/H3&gt;
&lt;P&gt;OneAgent can recover the original host name requested by the browser by evaluating specific request headers, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/my-web-application#rum-appdetection-uninstrumentedcomponent" target="_blank" rel="nofollow noopener"&gt;What can I do if an uninstrumented component rewrites parts of the URL?&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;You can view and configure these headers under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Web and mobile monitoring → Host name determination&lt;/EM&gt;. The list is evaluated in order of priority, starting from the top. It includes several default entries, with the de facto standard header&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;having the highest priority by default.&lt;/P&gt;
&lt;P&gt;There are cases where you may need to add additional entries to this list:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The component uses the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Forwarded&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header: This standardized replacement for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-*&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;headers includes multiple fields. It is part of the default host name determination list in environments created since Dynatrace version 1.267. Since OneAgents have long supported parsing this header, you can manually add it to the list in older environments if needed.&lt;/LI&gt;
&lt;LI&gt;The component uses a proprietary header: Any header used for host name determination—except for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Forwarded&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header—must follow the format of the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;&amp;lt;host&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for default ports, or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;otherwise. A comma-separated list of such entries is also supported, with the assumption that the first entry represents the original host name.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;When adding a new entry, place it above the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header entry, which is present in every HTTP/1.1 request.&lt;/P&gt;
&lt;P&gt;If you want to check whether a specific request header reaches OneAgent, you can add it as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/request-attributes" target="_blank" rel="nofollow noopener"&gt;request attribute&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":warning:"&gt;⚠️&lt;/span&gt; Make sure your host name determination configuration does not include the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Referer&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header, as it is not suitable for this purpose and will lead to unpredictable results.&lt;/P&gt;
&lt;H3&gt;Uninstrumented component does not set a header with the original host&lt;/H3&gt;
&lt;P&gt;If the uninstrumented component does not set a header containing the original host, there are two possible approaches:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Preferred:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Configure the component (or the one closest to the browser, if multiple are involved) to set a header such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-Host&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Alternative:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Use the internal host name in the application detection rule. Note: The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookie-domain#automatic-cookie-domain-determination" target="_blank" rel="nofollow noopener"&gt;automatic determination of the cookie domain&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;depends on the host detection result. If only the internal host name is available to OneAgent, the cookie domain may need to be&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookie-domain#manual-cookie-domain-config" target="_blank" rel="nofollow noopener"&gt;configured manually&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Application detection rule uses a URL path segment that is removed by URL rewriting&lt;/H3&gt;
&lt;P&gt;In some cases, an application detection rule may rely on a part of the URL path that gets removed during URL rewriting by an uninstrumented component. Unlike the host portion of the URL, there is no built-in mechanism to recover the original path, since most components do not forward this information via headers.&lt;/P&gt;
&lt;P&gt;If this applies to your setup, you’ll need to adjust the application detection rule to use a different part of the URL that remains intact after rewriting.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="h_1937273816011758026246938"&gt;x-dynatrace-application header is not propagated&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In multi-tier applications, the application is detected on the first instrumented tier—usually a proxy—while the RUM JavaScript is injected on the tier that generates the HTML response. On the typical proxy technologies (Apache, Nginx, IIS), OneAgent sets the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header on the request to propagate the detected application from tier to tier.&lt;/P&gt;
&lt;P&gt;If the topmost node in the trace shows the expected application, but the captured RUM data is assigned to a different application, it's likely that your application spans at least two tiers and the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header is not being propagated between them.&lt;/P&gt;
&lt;H3&gt;Scenario 1: Apache, Nginx, or IIS on the first instrumented tier&lt;/H3&gt;
&lt;P&gt;If the first instrumented tier is Apache, Nginx, or IIS, OneAgent sets the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header there, but your infrastructure removes it before it reaches the injecting tier. To verify, you can add the header as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/request-attributes" target="_blank" rel="nofollow noopener"&gt;request attribute&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;As a solution, please review the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-firewall" target="_blank" rel="nofollow noopener"&gt;Firewall constraints for RUM&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and configure your infrastructure accordingly.&lt;/P&gt;
&lt;H3&gt;Scenario 2: Java, Node.js, or ASP.NET Core on the first instrumented tier&lt;/H3&gt;
&lt;P&gt;If the first instrumented tier is a Java, Node.js, or ASP.NET Core process, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header is not set, since these technologies are not typically used as proxies. The following sections describe three different workarounds and the scenarios where they are applicable.&lt;/P&gt;
&lt;H4&gt;Workaround 1: Disabling RUM on all tiers except for the first one&lt;/H4&gt;
&lt;P&gt;With Node.js or ASP.NET Core on the first tier,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-for-process-groups#disable-rum-for-a-process-group" target="_blank" rel="nofollow noopener"&gt;disabling RUM&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on all other tiers is a viable workaround. With this configuration, the OneAgent on the first tier will take over injection.&lt;/P&gt;
&lt;P&gt;With a servlet-based Java application on the first tier, this workaround can only work if the HTML reaches the OneAgent that instruments it in an uncompressed form.&lt;/P&gt;
&lt;P&gt;With Netty on the first tier, this workaround is not applicable, since RUM injection is not supported for Netty.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":warning:"&gt;⚠️&lt;/span&gt; Do not use this workaround if you'd need to disable RUM on a tier that acts as the entry point for other requests or another application.&lt;/P&gt;
&lt;H4&gt;Workaround 2: Using domain-based application detection rules&lt;/H4&gt;
&lt;P&gt;Basing your application detection rule solely on the domain ensures consistent application detection across tiers, provided the component on the first tier propagates the host name using a header such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Forwarded-Host&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;If host name propagation hasn't been configured yet, adjust your component accordingly and ensure that the relevant header appears above the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header in the list under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Web and mobile monitoring → Host name determination&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;To verify that the header reaches the injecting tier, you can add it as a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/request-attributes" target="_blank" rel="nofollow noopener"&gt;request attribute&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;Workaround 3: Defining application detection rules based on the the internal URL&lt;/H4&gt;
&lt;P&gt;If neither of the previous approaches is applicable, you can define application detection rules based on the internal URL observed by OneAgent on the injecting tier. To identify the internal URL, inspect the trace.&lt;/P&gt;
&lt;P&gt;When using this setup, it's important to ensure the cookie domain—normally also derived from the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dynatrace-application&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header—is correctly configured:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Compare the external and internal URLs to determine whether they share a common&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://web.dev/articles/same-site-same-origin" target="_blank" rel="nofollow noopener"&gt;effective top-level domain plus one (eTLD+1)&lt;/A&gt;. If they do, the cookie domain should already be correctly determined on the injecting tier.&lt;/LI&gt;
&lt;LI&gt;If they do not, you’ll need to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookie-domain#manual-cookie-domain-config" target="_blank" rel="nofollow noopener"&gt;manually configure the cookie domain&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="h_1921021323681758026013208"&gt;Caching issues after a change of the application detection rules&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Caching can delay the immediate effectiveness of application detection rule changes in the following two primary scenarios.&lt;/P&gt;
&lt;H3&gt;Requests are handled by a CDN or caching proxy&lt;/H3&gt;
&lt;P&gt;When HTML is served through a CDN or caching proxy, OneAgent can inject the RUM JavaScript only if the HTML is fetched from the instrumented origin server—typically after the cached version has been evicted.&lt;/P&gt;
&lt;P&gt;If you've updated your application detection rules in this setup, the changes won't take effect until OneAgent is able to inject the RUM JavaScript again with an updated&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;parameter in the configuration.&lt;/P&gt;
&lt;P&gt;If you don't want to wait until the CDN edge servers serve the freshly injected page, manually clear the CDN cache to force a request to the origin server.&lt;/P&gt;
&lt;H3&gt;Long expiration times or missing caching policy&lt;/H3&gt;
&lt;P&gt;Check the caching headers on the response for the HTML document if you observe the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You cannot reproduce the issue with a cleared cache.&lt;/LI&gt;
&lt;LI&gt;The affected load actions do not have a drilldown to a trace for the request to the HTML document.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The following response headers control how long a resource may be cached before it expires:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;Cache-Control: max-age&lt;/CODE&gt;: Defines the cache duration in seconds, e.g.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Cache-Control: max-age=2592000&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;Expires&lt;/CODE&gt;: Specifies an absolute expiration date in HTTP date format, e.g.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Expires: Sun, 01 Nov 2020 06:47:04 GMT&lt;/CODE&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If either of these headers is present, the cached HTML may continue to be served with the previously injected app parameter until the cache expires. As a result, changes to application detection rules won’t take effect immediately.&lt;/P&gt;
&lt;P&gt;If an application does not specify an explicit expiration time, then this does not mean that the page may not be cached. The cache may use the page without revalidation as long as it deems appropriate, unless the response contains directives that prevent this, for example,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Cache-Control: no-store&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;In these situations, the only resolution is to wait until the outdated HTML document is evicted from all caches and OneAgent can inject the updated configuration.&lt;/P&gt;
&lt;P&gt;To avoid similar delays in the future, consider adjusting your caching strategy. Use short expiration times, or rely on validation-based caching using the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ETag&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Last-Modified&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;headers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="h_76648680711758025797808"&gt;Application detected for XHR actions does not reflect recent application detection rule changes&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This scenario applies if you observe the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Load actions are correctly assigned to the expected application.&lt;/LI&gt;
&lt;LI&gt;However, XHR actions from some users continue to appear under a different application— the one where the page was assigned before a recent change to the application detection rules.&lt;/LI&gt;
&lt;LI&gt;It is not possible to reproduce the issue with a cleared browser cache.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This behavior usually appears in single-page applications (SPAs). Instead of loading a new HTML page from the server, SPAs dynamically update the current page using XHRs. If the HTML was initially loaded before the application detection rules were updated, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;parameter embedded in the page may still reflect the previous configuration. As a result, XHR actions are mapped to the outdated application.&lt;/P&gt;
&lt;P&gt;This situation resolves automatically once the user refreshes the page or the application triggers a full reload. Until then, the outdated mapping will persist.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;What's Next?&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you've completed the troubleshooting steps above but still haven't identified the root cause, please contact Dynatrace via the in-product chat or by creating a support ticket.&lt;/P&gt;
&lt;P&gt;To help our support team investigate efficiently, include the following information:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/How-to-generate-a-HAR-file/ta-p/223391" target="_blank" rel="nofollow noopener"&gt;HAR file&lt;/A&gt;, or, preferably, a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/Web-applications-Use-Fiddler-for-debugging/ta-p/239009" target="_blank" rel="nofollow noopener"&gt;Fiddler session&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;capturing the full scenario.&lt;/LI&gt;
&lt;LI&gt;A link to the affected user session.&lt;/LI&gt;
&lt;LI&gt;A brief summary of the troubleshooting steps you've already completed.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Providing this information upfront will help accelerate the resolution process.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 29 Sep 2025 09:43:16 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156</guid>
      <dc:creator>MargitM</dc:creator>
      <dc:date>2025-09-29T09:43:16Z</dc:date>
    </item>
  </channel>
</rss>

