<?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 Troubleshooting automatic RUM injection failures in Troubleshooting</title>
    <link>https://community.dynatrace.com/t5/Troubleshooting/Troubleshooting-automatic-RUM-injection-failures/ta-p/287116</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;Dynatrace Real User Monitoring (RUM) supports the&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 injection of the RUM JavaScript&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;across a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;wide range of technologies&lt;/A&gt;. When OneAgent is deployed in full-stack monitoring mode, it automatically injects the RUM JavaScript into the HTML of your web applications.&lt;/P&gt;
&lt;P&gt;If injection succeeds, you'll find a script element containing the string&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;data-dtconfig&lt;/CODE&gt;—either as an attribute or embedded within the code—in the HTML of your page.&lt;/P&gt;
&lt;P&gt;However, in certain scenarios, OneAgent may fail to inject the RUM JavaScript. This troubleshooting guide is designed to help you systematically identify and resolve such issues. For best results, follow the steps in the order presented.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Find out which OneAgent is responsible for injecting the RUM JavaScript&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Applications often include multiple instrumented tiers. In such cases, RUM injection is performed by the first OneAgent—running on a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;technology where RUM injection is supported&lt;/A&gt;—that has access to the response HTML.&lt;/P&gt;
&lt;P&gt;For example, consider an application that includes an Apache HTTP server acting as a proxy and an Apache Tomcat generating the HTML. In this setup, the OneAgent on Tomcat performs the injection.&lt;/P&gt;
&lt;P&gt;When the OneAgent on Tomcat initiates the injection, it adds the response header&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-OneAgent-JS-Injection&lt;/CODE&gt;. If the OneAgent on the Apache HTTP server detects this header, it skips its own injection attempt to avoid double injection.&lt;/P&gt;
&lt;P&gt;If you are unsure about the application tiers that handle the HTML document request, use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-traces/analysis/get-started" target="_blank" rel="nofollow noopener"&gt;Distributed Traces screen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-tracing/distributed-tracing-app" target="_blank" rel="nofollow noopener"&gt;Distributed Tracing app&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to locate and inspect a distributed trace of the request.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Use OneAgent's built-in RUM health check&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For technologies that support automatic RUM injection, OneAgent provides a built-in health check mechanism offering a convenient way to identify the root cause of injection failures.&lt;/P&gt;
&lt;P&gt;The feature is triggered by setting the user agent string&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on requests. When such a request is received, OneAgent adds diagnostic data to the response. This section provides context to help you interpret this data and resolve many common causes of RUM injection failures independently.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Run the health check&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent as described in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/How-to-enable-dtHealthCheck/ta-p/270111" target="_blank" rel="nofollow noopener"&gt;How to enable dtHealthCheck&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The response headers for the HTML document should now include&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;If the application cannot handle the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Some applications may not work correctly with custom user agent strings like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;. If this applies to your application, use the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_2903300584451759307563565" target="_self"&gt;Troubleshooting injection failures without OneAgent's RUM health check&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;If the headers are missing&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the response headers&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are missing, go through the following checks:&lt;/P&gt;
&lt;H4&gt;1. Confirm that automatic injection is supported for your technology&lt;/H4&gt;
&lt;P&gt;Refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;Technology support - Real User Monitoring - Web servers and applications&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to verify that RUM injection is supported for at least one of the technologies delivering the HTML.&lt;/P&gt;
&lt;H4&gt;2. Check whether the HTML is served through a cache&lt;/H4&gt;
&lt;P&gt;A common reason for missing&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;headers is caching—for example, when the application is served via a CDN or caching proxy. If you're unsure, inspect the response headers. CDNs often add custom headers such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Cache: Hit&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;To confirm whether caching is the issue, send a request that bypasses the cache. This allows the request to reach the instrumented server, giving OneAgent a chance to inject. If injection succeeds when bypassing the cache, you’ll need to either clear the cache or wait until it updates with the injected page.&lt;/P&gt;
&lt;H4&gt;3. Verify that full-stack monitoring and deep monitoring are active&lt;/H4&gt;
&lt;P&gt;For RUM injection to function, OneAgent must be installed in full-stack monitoring mode. To check this, go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Infrastructure → Hosts&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and select the relevant host. On the host overview page, look for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Monitoring mode&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Also ensure that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/process-group-monitoring" target="_blank" rel="nofollow noopener"&gt;deep monitoring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has not been disabled.&lt;/P&gt;
&lt;P&gt;Make sure the monitored processes were restarted after deploying OneAgent.&lt;/P&gt;
&lt;H4&gt;4. Confirm that RUM is enabled for ASP.NET Core&lt;/H4&gt;
&lt;P&gt;If you are using ASP.NET Core, verify that the features&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enable Real User Monitoring (RUM) for ASP.NET Core&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;.NET ASP.NET Sensor V2&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are enabled under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Preferences → OneAgent features&lt;/EM&gt;. Restart the processes after enabling these features.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;If the headers are still missing&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If none of the reasons above explain the missing headers, your infrastructure may be stripping them.&lt;/P&gt;
&lt;P&gt;Refer to the page&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;, which lists all headers that must be preserved to ensure proper functioning of RUM. Verify that your setup complies with these requirements.&lt;/P&gt;
&lt;P&gt;Until the necessary changes are implemented, you can continue troubleshooting by following the steps in the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_2903300584451759307563565" target="_self"&gt;Troubleshooting injection failures without OneAgent's RUM health check&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Interpret the diagnostic data added by the health check&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;feature adds the response headers&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;, and, in some cases, inserts a special HTML marker into the response body. This section explains how to interpret that data.&lt;/P&gt;
&lt;P&gt;Focus your analysis on the data added to the HTML document response; data added to other requests during page load is not relevant for troubleshooting injection failures.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header contains the IDs of all OneAgents supporting RUM that are involved in handling the request. These are the module IDs available on the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/dynatrace-oneagent/oneagent-health" target="_blank" rel="nofollow noopener"&gt;OneAgent health overview&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and as part of the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/semantic-dictionary-global-field-reference#dynatrace-oneagent-metadata" target="_blank" rel="nofollow noopener"&gt;OneAgent Metadata&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in the latest Dynatrace.&lt;/P&gt;
&lt;P&gt;In the following example, OneAgents on two tiers are involved in handling RUM for the request:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;x-dtAgentId: 0x352ce8d5f768331c|0x589f2851fdfa6f1b
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The IDs are listed from the innermost to the outermost tier. Here,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;0x352ce8d5f768331c&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is the OneAgent that instruments the application server, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;0x589f2851fdfa6f1b&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is the OneAgent on the proxy. The header provides useful context for interpreting the second header,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;OneAgent reports its findings as short, descriptive strings in one or more&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response headers. On each tier, OneAgent can report multiple findings. Each header contains the ID of the OneAgent that added it. You can interpret the results using the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Health check results&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Example 1&lt;/H4&gt;
&lt;PRE&gt;&lt;CODE&gt;x-dtHealthCheck: BLOCKED_BY_INCOMING_COOKIE|0x352ce8d5f768331c
x-dtHealthCheck: OK_IPRANGE|0x589f2851fdfa6f1b
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In this case, the OneAgent on the proxy tier detected an IP exclusion rule that prevents RUM monitoring for the given IP address. As a result, it added the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_IPRANGE&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;finding. The OneAgent on the application tier recognized the cookie that the OneAgent on the proxy tier set to communicate this decision. It then skipped its injection attempt and reported&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;BLOCKED_BY_INCOMING_COOKIE&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Example 2&lt;/H4&gt;
&lt;PRE&gt;&lt;CODE&gt;x-dtHealthCheck: OK_BUT_PERCENTAGE|0x352ce8d5f768331c
x-dtHealthCheck: OK_BUT_PERCENTAGE|ALREADY_INJECTED_HEADER_FOUND|0x589f2851fdfa6f1b
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Here, the OneAgent on the application tier determined that cost and traffic control is active. It proceeded with an injection attempt and reported&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_BUT_PERCENTAGE&lt;/CODE&gt;. The agent on the proxy tier also detected active cost and traffic control and, in addition, reported&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ALREADY_INJECTED_HEADER_FOUND&lt;/CODE&gt;. This indicates that it found an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-OneAgent-JS-Injection&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header and therefore skipped its own injection attempt. As noted in the description of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_BUT_PERCENTAGE&lt;/CODE&gt;, you should check the response body for an &lt;A href="#h_4311477399631759307667284" target="_self"&gt;HTML marker&lt;/A&gt; in this case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Health check results&lt;/H4&gt;
&lt;P&gt;When the health check is applied to an HTML document request, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header may return the following results:&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;No issues were detected during the portion of request processing where OneAgent can reliably set response headers. However, you must inspect the response body for potential&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_4311477399631759307667284" target="_self"&gt;HTML markers&lt;/A&gt;, as problems may still exist beyond this point.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;CAPTURING_OFF_SENSOR_CONF&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;This result can have two different meanings.&lt;/P&gt;
&lt;H6&gt;RUM is disabled on the process group&lt;/H6&gt;
&lt;P&gt;RUM is disabled on the process group by one of the following settings or their equivalents on the environment level:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → Real User Monitoring → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → OneAgent features → Real user monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;On Java, make sure to restart the processes after enabling these settings.&lt;/P&gt;
&lt;H6&gt;A web request URL exclusion rule is in place&lt;/H6&gt;
&lt;P&gt;This request is not captured due to a web request URL exclusion rule in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Server-side service monitoring → Deep monitoring → Exclude specific incoming web request URLs&lt;/EM&gt;. On Java, this setting also suppresses RUM injection.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;CAPTURING_OFF_APP_CONF&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;Most likely, the following setting is disabled in the RUM application:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SaaS:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring Classic&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Managed:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If the application where you expect the request to be assigned to has the setting enabled, check if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;CAPTURING_OFF_APP_CONF&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;appears together with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DEFAULT_CONFIG&lt;/CODE&gt;. This combination usually indicates a licensing-related issue.&lt;/P&gt;
&lt;P&gt;Otherwise, you are dealing with an application detection issue. Review the page&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 approach&lt;/A&gt;. As described there, URL rewriting on an uninstrumented component is a common root cause of application detection issues. Use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-traces/analysis/get-started" target="_blank" rel="nofollow noopener"&gt;Distributed Traces screen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-tracing/distributed-tracing-app" target="_blank" rel="nofollow noopener"&gt;Distributed Tracing app&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to locate a trace of the request and identify the URL that actually reaches the first instrumented tier, where the application is detected.&lt;/P&gt;
&lt;P&gt;Parts of the guide&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156" target="_blank" rel="nofollow noopener"&gt;RUM data is assigned to a different application than expected&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are also applicable to this scenario, particularly the sections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Double-check your application detection rules&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/EM&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;DO_NOT_TRACK&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The request includes a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DNT&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Do Not Track) header, and the application has the setting&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/global-privacy-settings#do-not-track-gdpr" target="_blank" rel="nofollow noopener"&gt;Disable Real User Monitoring for "Do Not Track" enabled browsers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enabled.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_BUT_BROWSER_RESTRICTION&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots#exclude-browsers" target="_blank" rel="nofollow noopener"&gt;browser exclusion rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured that suppresses injection for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent. To bypass this rule, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Ignoring browser and IP exclusion rules&lt;/EM&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_IPRANGE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;An&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots#exclude-ip-addresses" target="_blank" rel="nofollow noopener"&gt;IP address exclusion rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured that suppresses injection for your IP address. To bypass this rule, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Ignoring browser and IP exclusion rules&lt;/EM&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_BUT_PERCENTAGE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cost-and-traffic-control-web" target="_blank" rel="nofollow noopener"&gt;Cost and traffic control&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured to a value below 100%. While only a subset of sessions is captured with this configuration, OneAgent always makes an injection attempt. No injection issues were detected during the portion of request processing where OneAgent can reliably set response headers. However, you must inspect the response body for potential &lt;A href="#h_4311477399631759307667284" target="_self"&gt;HTML markers&lt;/A&gt;, as problems may still exist beyond this point.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;NO_CONTENT_TYPE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The response lacks a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header, preventing OneAgent from determining whether the content is HTML.&lt;/P&gt;
&lt;P&gt;Note that even if the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header appears in browser developer tools, it may not have been present at the time OneAgent processed the response.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INVALID_MIME_TYPE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The MIME type specified in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header is not&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;text/html&lt;/CODE&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INVALID_ENCODING&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;charset&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(character encoding) defined in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header is not supported.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INVALID_HTML&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent was unable to find a suitable injection point, usually due to ill-formed HTML.&lt;/P&gt;
&lt;P&gt;As a workaround, create a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects before or after a specific HTML pattern.&lt;/P&gt;
&lt;P&gt;In Java, this result may also occur if OneAgent exceeded the 100,000-character threshold while scanning the HTML. This limit was removed for applications created in Dynatrace version 1.205 and later, and starting with version 1.315, it was discontinued entirely.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;NO_HTML&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent determined that the resource does not qualify for injection based on its URL suffix—for example,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.js&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.css&lt;/CODE&gt;. These suffixes typically indicate non-HTML content, and therefore injection is skipped.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_BUT_URL_RESTRICTION&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#disable-injection" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured that suppresses injection for this page.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INJECTION_PREVENTED_BY_HEADER&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The request includes a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Range&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header, indicating an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests" target="_blank" rel="nofollow noopener"&gt;HTTP range request&lt;/A&gt;. Since automatic RUM injection is not supported for range requests, you'll need to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#manual-insertion-using-oneagent" target="_blank" rel="nofollow noopener"&gt;manually insert the RUM JavaScript&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;into the HTML response.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;JS_AGENT_MISSING&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent did not receive the monitoring code for the configured RUM JavaScript version from the Dynatrace cluster. In Managed Offline environments, ensure that the required RUM JavaScript version is properly deployed to the cluster.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;ALREADY_INJECTED_HEADER_FOUND&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent skips injection because the response already includes an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-OneAgent-JS-Injection&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header. This header indicates that another agent has either already injected the RUM JavaScript or made an attempt to do so.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;ENVIRONMENT_MISMATCH&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent detected that this request was already processed by another OneAgent connected to a different Dynatrace environment, which instruments a tier closer to the browser. To avoid mixing RUM configurations across environments, the current OneAgent disables its own RUM functionality and defers injection to the other agent.&lt;/P&gt;
&lt;P&gt;Since Dynatrace RUM does not support cross-environment scenarios, this health check result should be investigated to ensure consistent monitoring.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;BLOCKED_BY_INCOMING_COOKIE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;This result typically occurs alongside&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_IPRANGE&lt;/CODE&gt;,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_BUT_BROWSER_RESTRICTION&lt;/CODE&gt;, or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DO_NOT_TRACK&lt;/CODE&gt;, set by another OneAgent.&lt;/P&gt;
&lt;P&gt;That agent determined that injection should be skipped—either to comply with the DNT header or due to an IP or browser exclusion rule—and communicated this decision to other OneAgents using the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookies#dynatrace-rum-cookies" target="_blank" rel="nofollow noopener"&gt;dtCookie&lt;/A&gt;. OneAgents that find and evaluate the cookie skip their injection attempts.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;DEFAULT_CONFIG&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent was unable to detect a RUM application and fell back to the default configuration, which happens when it doesn't receive application settings from the cluster.&lt;/P&gt;
&lt;P&gt;This typically indicates licensing-related issues.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;Note: The spelling&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is a typo in the actual value reported by OneAgent. It’s documented as-is to match what you’ll see in the response headers.&lt;/P&gt;
&lt;P&gt;It means OneAgent exceeded the 100,000-character threshold while scanning the HTML. This limit was removed for applications created in Dynatrace version 1.205 and later, and starting with version 1.315, it was discontinued entirely.&lt;/P&gt;
&lt;P&gt;This health check result is only set by OneAgents on non-Java technologies, where you can work around the limit by using a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects before or after a specific HTML pattern.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;MARKER_LOST_IN_FLUSH&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent lost the injection opportunity because one of the involved Java servlets or filters flushed the output stream. If you cannot remove the flush, try working around the issue by using a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects after a specific pattern.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;RESPONSE_BODY_ALREADY_GZIPPED&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent does not inject because the response body is already gzipped. This result is specific to Java, where—unlike other technologies—injection into already compressed content is not supported. Typically, this isn't a problem, as OneAgent strategically selects an injection point in the filter chain before compression occurs.&lt;/P&gt;
&lt;P&gt;However, in some cases—such as when a single servlet handles content creation, header writing, and compression—this strategy may not be feasible. In such scenarios, the following workarounds are available:&lt;/P&gt;
&lt;H6&gt;Injection on the proxy tier&lt;/H6&gt;
&lt;P&gt;On other&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;technologies that support RUM injection&lt;/A&gt;, OneAgent can inject into compressed resources.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If your Java application is already behind a proxy of a supported technology, you can disable RUM on the Java process group to shift injection to the proxy tier. To do this, go to:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your process group → Settings → Real User Monitoring → Enable Real User Monitoring&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;If no proxy is in place, consider adding one.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;Manual insertion&lt;/H6&gt;
&lt;P&gt;If adding a proxy is not an option, you can manually insert the RUM JavaScript into your HTML pages. For details, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#manual-insertion-using-oneagent" target="_blank" rel="nofollow noopener"&gt;Use manual insertion for pages of an auto-injected application&lt;/A&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;ORIGINAL_RESPONSE_REQUIRED&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;One of the involved servlets or filters requires the original ServletResponse through an explicit type cast. OneAgent had to return the original servlet response without the wrapper that injects the RUM JavaScript, and therefore could not perform the injection. The workarounds listed under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;RESPONSE_BODY_ALREADY_GZIPPED&lt;/CODE&gt;—injection on the proxy tier and manual insertion—are also suitable for this scenario.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 id="h_4311477399631759307667284"&gt;HTML markers&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;During the HTML injection process, OneAgent may at some point not be able to reliably add the health check results&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INVALID_HTML&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;anymore to the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header. To compensate, the health check inserts HTML markers into the response body. These markers appear as:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;!-- Dynatrace RUM health check active. No suitable injection location in HTML found. --&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;For details and possible workarounds, refer to the descriptions of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INVALID_HTML&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Ignoring browser and IP exclusion rules&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If your application is configured to restrict RUM to specific browsers or IP ranges, the default&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent may not provide visibility into potential injection issues. To bypass the exclusion rules during health checks, use the special user agent string&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheckIgnoreRestrictions&lt;/CODE&gt;. With this user agent, OneAgent reports the configured browser/IP restrictions, but then proceeds with injection and reports further injection issues, if there are any.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Injection suddenly working with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If injection starts working as soon as you set the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent, the most likely cause of the previous injection failure is the user agent string you used previously.&lt;/P&gt;
&lt;P&gt;Check whether you've configured any&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots#exclude-browsers" target="_blank" rel="nofollow noopener"&gt;browser exclusion rules&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that might exclude this browser. Also note that OneAgent applies internal rules that disable all RUM functionality for user agents that clearly do not represent real users—such as strings starting with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;curl/&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;PostmanRuntime/&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="h_2903300584451759307563565"&gt;Troubleshooting injection failures without OneAgent's RUM health check&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If your application cannot handle the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent or your infrastructure strips the returned headers, review the following checks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Does the RUM JavaScript injection diagnostics feature return an injection failure reason?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/observe/digital-experience/web-applications/initial-setup/app-health-check#injection-diagnostics" target="_blank" rel="nofollow noopener"&gt;RUM JavaScript injection diagnostics&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;feature on the RUM application health check page offers a convenient way to diagnose injection failures. While it provides fewer insights compared to the health check triggered by the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent, we still recommend starting with a diagnostics run before proceeding with the checks outlined below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is automatic injection supported for your technology?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you haven't already done so, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;Technology support - Real User Monitoring - Web servers and applications&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to verify that RUM injection is supported for at least one of the technologies delivering the HTML.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is the HTML served through a cache?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A common reason for missing injection is that the HTML is served through a cache, such as a CDN or a caching proxy. If you're unsure whether this applies to your page, inspect the response headers—CDNs often include custom headers like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Cache: Hit&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;To determine if caching is the cause, try sending a request that bypasses the cache. This ensures the request reaches the instrumented server, giving OneAgent the opportunity to perform the injection. If the injection succeeds when bypassing the cache, then caching is the issue. In that case, you’ll need to either clear the cache or wait for it to update with the injected version of the page.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Are full-stack monitoring and deep monitoring active?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For RUM injection to function, OneAgent must be installed in full-stack monitoring mode. To check this, go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Infrastructure → Hosts&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and select the relevant host. On the host overview page, look for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Monitoring mode&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Also ensure that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/process-group-monitoring" target="_blank" rel="nofollow noopener"&gt;deep monitoring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has not been disabled.&lt;/P&gt;
&lt;P&gt;Make sure the monitored processes were restarted after deploying OneAgent.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM enabled for ASP.NET Core?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you are using ASP.NET Core, verify that the features&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enable Real User Monitoring (RUM) for ASP.NET Core&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;.NET ASP.NET Sensor V2&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are enabled under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Preferences → OneAgent features&lt;/EM&gt;. Restart the processes after enabling these features.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM enabled for your application?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check whether the following setting is enabled in the RUM application:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SaaS:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring Classic&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Managed:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With this setting disabled, the RUM JavaScript is not injected.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is application detection set up properly?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ensure that the request for the HTML document maps to the application where you expect it to. This is especially relevant if your environment has any auto-injected applications where RUM is disabled.&lt;/P&gt;
&lt;P&gt;As described in&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 approach&lt;/A&gt;, URL rewriting on an uninstrumented component is a common root cause of application detection issues. Use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-traces/analysis/get-started" target="_blank" rel="nofollow noopener"&gt;Distributed Traces screen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-tracing/distributed-tracing-app" target="_blank" rel="nofollow noopener"&gt;Distributed Tracing app&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to locate a trace of the request and identify the URL that actually reaches the first instrumented tier, where the application is detected.&lt;/P&gt;
&lt;P&gt;Parts of the guide&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156" target="_blank" rel="nofollow noopener"&gt;RUM data is assigned to a different application than expected&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are also applicable to this scenario, particularly the sections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Double-check your application detection rules&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM disabled on the process group?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The RUM JavaScript can only be injected if RUM is enabled on the process group. Check whether one of the following settings—or their environment-level equivalents—is disabled:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → Real User Monitoring → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → OneAgent features → Real user monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;On Java, make sure to restart the processes after enabling these settings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is your HTML valid and well-formed?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ensure your HTML is well-formed by following basic best practices—for example, opening and closing all elements properly.&lt;/P&gt;
&lt;P&gt;To work around ill-formed HTML, create a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects before or after a specific HTML pattern.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Do you have a valid license?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Injection failures may also result from licensing issues. Make sure your license is still valid.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Are browser or IP restrictions rules configured?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check if there are any&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots" target="_blank" rel="nofollow noopener"&gt;browser or IP exclusion rules&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured that suppress injection for your IP or browser.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM disabled for "Do not track" enabled browsers?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the application has the setting&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/global-privacy-settings#do-not-track-gdpr" target="_blank" rel="nofollow noopener"&gt;Disable Real User Monitoring for "Do Not Track" enabled browsers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enabled, ensure that your browser does not send a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DNT&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Do Not Track) header on the request.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is the document request a range request?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check if the document request includes a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Range&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header and is therefore an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests" target="_blank" rel="nofollow noopener"&gt;HTTP range request&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;If it does, you'll need to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#manual-insertion-using-oneagent" target="_blank" rel="nofollow noopener"&gt;manually insert the RUM JavaScript&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;into the HTML response, since automatic RUM injection is not supported for range requests.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Does a custom injection rule suppress injection?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check whether you have a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#disable-injection" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured that suppresses injection for this page.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is a web request URL exclusion rule in place?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check if a web request URL exclusion rule is configured for the request URL in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Server-side service monitoring → Deep monitoring → Exclude specific incoming web request URLs&lt;/EM&gt;. On Java, this setting suppresses RUM injection.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Managed Offline: Has the RUM JavaScript been deployed?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Managed Offline environments, ensure that the required RUM JavaScript version is properly deployed to the cluster.&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 haven't been able to identify the root cause of your issue and solve it, 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;Access details, if the page is publicly available and you can grant access to the support team.&lt;/LI&gt;
&lt;LI&gt;If access cannot be granted: 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—ideally with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enabled.&lt;/LI&gt;
&lt;LI&gt;A brief summary of the troubleshooting steps you've completed.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Providing this information upfront will help speed up the resolution process.&lt;/P&gt;
&lt;/DIV&gt;</description>
    <pubDate>Mon, 27 Oct 2025 08:46:42 GMT</pubDate>
    <dc:creator>MargitM</dc:creator>
    <dc:date>2025-10-27T08:46:42Z</dc:date>
    <item>
      <title>Troubleshooting automatic RUM injection failures</title>
      <link>https://community.dynatrace.com/t5/Troubleshooting/Troubleshooting-automatic-RUM-injection-failures/ta-p/287116</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;Dynatrace Real User Monitoring (RUM) supports the&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 injection of the RUM JavaScript&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;across a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;wide range of technologies&lt;/A&gt;. When OneAgent is deployed in full-stack monitoring mode, it automatically injects the RUM JavaScript into the HTML of your web applications.&lt;/P&gt;
&lt;P&gt;If injection succeeds, you'll find a script element containing the string&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;data-dtconfig&lt;/CODE&gt;—either as an attribute or embedded within the code—in the HTML of your page.&lt;/P&gt;
&lt;P&gt;However, in certain scenarios, OneAgent may fail to inject the RUM JavaScript. This troubleshooting guide is designed to help you systematically identify and resolve such issues. For best results, follow the steps in the order presented.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Find out which OneAgent is responsible for injecting the RUM JavaScript&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Applications often include multiple instrumented tiers. In such cases, RUM injection is performed by the first OneAgent—running on a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;technology where RUM injection is supported&lt;/A&gt;—that has access to the response HTML.&lt;/P&gt;
&lt;P&gt;For example, consider an application that includes an Apache HTTP server acting as a proxy and an Apache Tomcat generating the HTML. In this setup, the OneAgent on Tomcat performs the injection.&lt;/P&gt;
&lt;P&gt;When the OneAgent on Tomcat initiates the injection, it adds the response header&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-OneAgent-JS-Injection&lt;/CODE&gt;. If the OneAgent on the Apache HTTP server detects this header, it skips its own injection attempt to avoid double injection.&lt;/P&gt;
&lt;P&gt;If you are unsure about the application tiers that handle the HTML document request, use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-traces/analysis/get-started" target="_blank" rel="nofollow noopener"&gt;Distributed Traces screen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-tracing/distributed-tracing-app" target="_blank" rel="nofollow noopener"&gt;Distributed Tracing app&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to locate and inspect a distributed trace of the request.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Use OneAgent's built-in RUM health check&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For technologies that support automatic RUM injection, OneAgent provides a built-in health check mechanism offering a convenient way to identify the root cause of injection failures.&lt;/P&gt;
&lt;P&gt;The feature is triggered by setting the user agent string&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on requests. When such a request is received, OneAgent adds diagnostic data to the response. This section provides context to help you interpret this data and resolve many common causes of RUM injection failures independently.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Run the health check&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent as described in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/How-to-enable-dtHealthCheck/ta-p/270111" target="_blank" rel="nofollow noopener"&gt;How to enable dtHealthCheck&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The response headers for the HTML document should now include&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;If the application cannot handle the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Some applications may not work correctly with custom user agent strings like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;. If this applies to your application, use the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_2903300584451759307563565" target="_self"&gt;Troubleshooting injection failures without OneAgent's RUM health check&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;If the headers are missing&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the response headers&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are missing, go through the following checks:&lt;/P&gt;
&lt;H4&gt;1. Confirm that automatic injection is supported for your technology&lt;/H4&gt;
&lt;P&gt;Refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;Technology support - Real User Monitoring - Web servers and applications&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to verify that RUM injection is supported for at least one of the technologies delivering the HTML.&lt;/P&gt;
&lt;H4&gt;2. Check whether the HTML is served through a cache&lt;/H4&gt;
&lt;P&gt;A common reason for missing&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;headers is caching—for example, when the application is served via a CDN or caching proxy. If you're unsure, inspect the response headers. CDNs often add custom headers such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Cache: Hit&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;To confirm whether caching is the issue, send a request that bypasses the cache. This allows the request to reach the instrumented server, giving OneAgent a chance to inject. If injection succeeds when bypassing the cache, you’ll need to either clear the cache or wait until it updates with the injected page.&lt;/P&gt;
&lt;H4&gt;3. Verify that full-stack monitoring and deep monitoring are active&lt;/H4&gt;
&lt;P&gt;For RUM injection to function, OneAgent must be installed in full-stack monitoring mode. To check this, go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Infrastructure → Hosts&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and select the relevant host. On the host overview page, look for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Monitoring mode&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Also ensure that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/process-group-monitoring" target="_blank" rel="nofollow noopener"&gt;deep monitoring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has not been disabled.&lt;/P&gt;
&lt;P&gt;Make sure the monitored processes were restarted after deploying OneAgent.&lt;/P&gt;
&lt;H4&gt;4. Confirm that RUM is enabled for ASP.NET Core&lt;/H4&gt;
&lt;P&gt;If you are using ASP.NET Core, verify that the features&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enable Real User Monitoring (RUM) for ASP.NET Core&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;.NET ASP.NET Sensor V2&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are enabled under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Preferences → OneAgent features&lt;/EM&gt;. Restart the processes after enabling these features.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;If the headers are still missing&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If none of the reasons above explain the missing headers, your infrastructure may be stripping them.&lt;/P&gt;
&lt;P&gt;Refer to the page&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;, which lists all headers that must be preserved to ensure proper functioning of RUM. Verify that your setup complies with these requirements.&lt;/P&gt;
&lt;P&gt;Until the necessary changes are implemented, you can continue troubleshooting by following the steps in the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_2903300584451759307563565" target="_self"&gt;Troubleshooting injection failures without OneAgent's RUM health check&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Interpret the diagnostic data added by the health check&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;feature adds the response headers&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;, and, in some cases, inserts a special HTML marker into the response body. This section explains how to interpret that data.&lt;/P&gt;
&lt;P&gt;Focus your analysis on the data added to the HTML document response; data added to other requests during page load is not relevant for troubleshooting injection failures.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtAgentId&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header contains the IDs of all OneAgents supporting RUM that are involved in handling the request. These are the module IDs available on the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/dynatrace-oneagent/oneagent-health" target="_blank" rel="nofollow noopener"&gt;OneAgent health overview&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and as part of the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/semantic-dictionary-global-field-reference#dynatrace-oneagent-metadata" target="_blank" rel="nofollow noopener"&gt;OneAgent Metadata&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in the latest Dynatrace.&lt;/P&gt;
&lt;P&gt;In the following example, OneAgents on two tiers are involved in handling RUM for the request:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;x-dtAgentId: 0x352ce8d5f768331c|0x589f2851fdfa6f1b
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The IDs are listed from the innermost to the outermost tier. Here,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;0x352ce8d5f768331c&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is the OneAgent that instruments the application server, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;0x589f2851fdfa6f1b&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is the OneAgent on the proxy. The header provides useful context for interpreting the second header,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;OneAgent reports its findings as short, descriptive strings in one or more&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response headers. On each tier, OneAgent can report multiple findings. Each header contains the ID of the OneAgent that added it. You can interpret the results using the section&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Health check results&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Example 1&lt;/H4&gt;
&lt;PRE&gt;&lt;CODE&gt;x-dtHealthCheck: BLOCKED_BY_INCOMING_COOKIE|0x352ce8d5f768331c
x-dtHealthCheck: OK_IPRANGE|0x589f2851fdfa6f1b
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In this case, the OneAgent on the proxy tier detected an IP exclusion rule that prevents RUM monitoring for the given IP address. As a result, it added the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_IPRANGE&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;finding. The OneAgent on the application tier recognized the cookie that the OneAgent on the proxy tier set to communicate this decision. It then skipped its injection attempt and reported&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;BLOCKED_BY_INCOMING_COOKIE&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Example 2&lt;/H4&gt;
&lt;PRE&gt;&lt;CODE&gt;x-dtHealthCheck: OK_BUT_PERCENTAGE|0x352ce8d5f768331c
x-dtHealthCheck: OK_BUT_PERCENTAGE|ALREADY_INJECTED_HEADER_FOUND|0x589f2851fdfa6f1b
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Here, the OneAgent on the application tier determined that cost and traffic control is active. It proceeded with an injection attempt and reported&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_BUT_PERCENTAGE&lt;/CODE&gt;. The agent on the proxy tier also detected active cost and traffic control and, in addition, reported&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ALREADY_INJECTED_HEADER_FOUND&lt;/CODE&gt;. This indicates that it found an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-OneAgent-JS-Injection&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header and therefore skipped its own injection attempt. As noted in the description of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_BUT_PERCENTAGE&lt;/CODE&gt;, you should check the response body for an &lt;A href="#h_4311477399631759307667284" target="_self"&gt;HTML marker&lt;/A&gt; in this case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Health check results&lt;/H4&gt;
&lt;P&gt;When the health check is applied to an HTML document request, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header may return the following results:&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;No issues were detected during the portion of request processing where OneAgent can reliably set response headers. However, you must inspect the response body for potential&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="#h_4311477399631759307667284" target="_self"&gt;HTML markers&lt;/A&gt;, as problems may still exist beyond this point.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;CAPTURING_OFF_SENSOR_CONF&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;This result can have two different meanings.&lt;/P&gt;
&lt;H6&gt;RUM is disabled on the process group&lt;/H6&gt;
&lt;P&gt;RUM is disabled on the process group by one of the following settings or their equivalents on the environment level:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → Real User Monitoring → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → OneAgent features → Real user monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;On Java, make sure to restart the processes after enabling these settings.&lt;/P&gt;
&lt;H6&gt;A web request URL exclusion rule is in place&lt;/H6&gt;
&lt;P&gt;This request is not captured due to a web request URL exclusion rule in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Server-side service monitoring → Deep monitoring → Exclude specific incoming web request URLs&lt;/EM&gt;. On Java, this setting also suppresses RUM injection.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;CAPTURING_OFF_APP_CONF&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;Most likely, the following setting is disabled in the RUM application:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SaaS:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring Classic&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Managed:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If the application where you expect the request to be assigned to has the setting enabled, check if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;CAPTURING_OFF_APP_CONF&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;appears together with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DEFAULT_CONFIG&lt;/CODE&gt;. This combination usually indicates a licensing-related issue.&lt;/P&gt;
&lt;P&gt;Otherwise, you are dealing with an application detection issue. Review the page&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 approach&lt;/A&gt;. As described there, URL rewriting on an uninstrumented component is a common root cause of application detection issues. Use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-traces/analysis/get-started" target="_blank" rel="nofollow noopener"&gt;Distributed Traces screen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-tracing/distributed-tracing-app" target="_blank" rel="nofollow noopener"&gt;Distributed Tracing app&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to locate a trace of the request and identify the URL that actually reaches the first instrumented tier, where the application is detected.&lt;/P&gt;
&lt;P&gt;Parts of the guide&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156" target="_blank" rel="nofollow noopener"&gt;RUM data is assigned to a different application than expected&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are also applicable to this scenario, particularly the sections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Double-check your application detection rules&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/EM&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;DO_NOT_TRACK&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The request includes a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DNT&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Do Not Track) header, and the application has the setting&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/global-privacy-settings#do-not-track-gdpr" target="_blank" rel="nofollow noopener"&gt;Disable Real User Monitoring for "Do Not Track" enabled browsers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enabled.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_BUT_BROWSER_RESTRICTION&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots#exclude-browsers" target="_blank" rel="nofollow noopener"&gt;browser exclusion rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured that suppresses injection for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent. To bypass this rule, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Ignoring browser and IP exclusion rules&lt;/EM&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_IPRANGE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;An&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots#exclude-ip-addresses" target="_blank" rel="nofollow noopener"&gt;IP address exclusion rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured that suppresses injection for your IP address. To bypass this rule, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Ignoring browser and IP exclusion rules&lt;/EM&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_BUT_PERCENTAGE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cost-and-traffic-control-web" target="_blank" rel="nofollow noopener"&gt;Cost and traffic control&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured to a value below 100%. While only a subset of sessions is captured with this configuration, OneAgent always makes an injection attempt. No injection issues were detected during the portion of request processing where OneAgent can reliably set response headers. However, you must inspect the response body for potential &lt;A href="#h_4311477399631759307667284" target="_self"&gt;HTML markers&lt;/A&gt;, as problems may still exist beyond this point.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;NO_CONTENT_TYPE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The response lacks a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header, preventing OneAgent from determining whether the content is HTML.&lt;/P&gt;
&lt;P&gt;Note that even if the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header appears in browser developer tools, it may not have been present at the time OneAgent processed the response.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INVALID_MIME_TYPE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The MIME type specified in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header is not&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;text/html&lt;/CODE&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INVALID_ENCODING&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;charset&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(character encoding) defined in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Content-Type&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;response header is not supported.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INVALID_HTML&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent was unable to find a suitable injection point, usually due to ill-formed HTML.&lt;/P&gt;
&lt;P&gt;As a workaround, create a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects before or after a specific HTML pattern.&lt;/P&gt;
&lt;P&gt;In Java, this result may also occur if OneAgent exceeded the 100,000-character threshold while scanning the HTML. This limit was removed for applications created in Dynatrace version 1.205 and later, and starting with version 1.315, it was discontinued entirely.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;NO_HTML&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent determined that the resource does not qualify for injection based on its URL suffix—for example,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.js&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.css&lt;/CODE&gt;. These suffixes typically indicate non-HTML content, and therefore injection is skipped.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;OK_BUT_URL_RESTRICTION&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;A&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#disable-injection" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is configured that suppresses injection for this page.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INJECTION_PREVENTED_BY_HEADER&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;The request includes a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Range&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header, indicating an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests" target="_blank" rel="nofollow noopener"&gt;HTTP range request&lt;/A&gt;. Since automatic RUM injection is not supported for range requests, you'll need to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#manual-insertion-using-oneagent" target="_blank" rel="nofollow noopener"&gt;manually insert the RUM JavaScript&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;into the HTML response.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;JS_AGENT_MISSING&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent did not receive the monitoring code for the configured RUM JavaScript version from the Dynatrace cluster. In Managed Offline environments, ensure that the required RUM JavaScript version is properly deployed to the cluster.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;ALREADY_INJECTED_HEADER_FOUND&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent skips injection because the response already includes an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-OneAgent-JS-Injection&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header. This header indicates that another agent has either already injected the RUM JavaScript or made an attempt to do so.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;ENVIRONMENT_MISMATCH&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent detected that this request was already processed by another OneAgent connected to a different Dynatrace environment, which instruments a tier closer to the browser. To avoid mixing RUM configurations across environments, the current OneAgent disables its own RUM functionality and defers injection to the other agent.&lt;/P&gt;
&lt;P&gt;Since Dynatrace RUM does not support cross-environment scenarios, this health check result should be investigated to ensure consistent monitoring.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;BLOCKED_BY_INCOMING_COOKIE&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;This result typically occurs alongside&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_IPRANGE&lt;/CODE&gt;,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;OK_BUT_BROWSER_RESTRICTION&lt;/CODE&gt;, or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DO_NOT_TRACK&lt;/CODE&gt;, set by another OneAgent.&lt;/P&gt;
&lt;P&gt;That agent determined that injection should be skipped—either to comply with the DNT header or due to an IP or browser exclusion rule—and communicated this decision to other OneAgents using the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/cookies#dynatrace-rum-cookies" target="_blank" rel="nofollow noopener"&gt;dtCookie&lt;/A&gt;. OneAgents that find and evaluate the cookie skip their injection attempts.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;DEFAULT_CONFIG&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent was unable to detect a RUM application and fell back to the default configuration, which happens when it doesn't receive application settings from the cluster.&lt;/P&gt;
&lt;P&gt;This typically indicates licensing-related issues.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;Note: The spelling&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is a typo in the actual value reported by OneAgent. It’s documented as-is to match what you’ll see in the response headers.&lt;/P&gt;
&lt;P&gt;It means OneAgent exceeded the 100,000-character threshold while scanning the HTML. This limit was removed for applications created in Dynatrace version 1.205 and later, and starting with version 1.315, it was discontinued entirely.&lt;/P&gt;
&lt;P&gt;This health check result is only set by OneAgents on non-Java technologies, where you can work around the limit by using a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects before or after a specific HTML pattern.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;MARKER_LOST_IN_FLUSH&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent lost the injection opportunity because one of the involved Java servlets or filters flushed the output stream. If you cannot remove the flush, try working around the issue by using a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects after a specific pattern.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;RESPONSE_BODY_ALREADY_GZIPPED&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;OneAgent does not inject because the response body is already gzipped. This result is specific to Java, where—unlike other technologies—injection into already compressed content is not supported. Typically, this isn't a problem, as OneAgent strategically selects an injection point in the filter chain before compression occurs.&lt;/P&gt;
&lt;P&gt;However, in some cases—such as when a single servlet handles content creation, header writing, and compression—this strategy may not be feasible. In such scenarios, the following workarounds are available:&lt;/P&gt;
&lt;H6&gt;Injection on the proxy tier&lt;/H6&gt;
&lt;P&gt;On other&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;technologies that support RUM injection&lt;/A&gt;, OneAgent can inject into compressed resources.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If your Java application is already behind a proxy of a supported technology, you can disable RUM on the Java process group to shift injection to the proxy tier. To do this, go to:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your process group → Settings → Real User Monitoring → Enable Real User Monitoring&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;If no proxy is in place, consider adding one.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H6&gt;Manual insertion&lt;/H6&gt;
&lt;P&gt;If adding a proxy is not an option, you can manually insert the RUM JavaScript into your HTML pages. For details, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#manual-insertion-using-oneagent" target="_blank" rel="nofollow noopener"&gt;Use manual insertion for pages of an auto-injected application&lt;/A&gt;.&lt;/P&gt;
&lt;H5&gt;&lt;CODE&gt;ORIGINAL_RESPONSE_REQUIRED&lt;/CODE&gt;&lt;/H5&gt;
&lt;P&gt;One of the involved servlets or filters requires the original ServletResponse through an explicit type cast. OneAgent had to return the original servlet response without the wrapper that injects the RUM JavaScript, and therefore could not perform the injection. The workarounds listed under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;RESPONSE_BODY_ALREADY_GZIPPED&lt;/CODE&gt;—injection on the proxy tier and manual insertion—are also suitable for this scenario.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 id="h_4311477399631759307667284"&gt;HTML markers&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;During the HTML injection process, OneAgent may at some point not be able to reliably add the health check results&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INVALID_HTML&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;anymore to the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;x-dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header. To compensate, the health check inserts HTML markers into the response body. These markers appear as:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;!-- Dynatrace RUM health check active. No suitable injection location in HTML found. --&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;For details and possible workarounds, refer to the descriptions of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INVALID_HTML&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;INJECTION_TRESHOLD&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Ignoring browser and IP exclusion rules&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If your application is configured to restrict RUM to specific browsers or IP ranges, the default&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent may not provide visibility into potential injection issues. To bypass the exclusion rules during health checks, use the special user agent string&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheckIgnoreRestrictions&lt;/CODE&gt;. With this user agent, OneAgent reports the configured browser/IP restrictions, but then proceeds with injection and reports further injection issues, if there are any.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Injection suddenly working with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If injection starts working as soon as you set the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent, the most likely cause of the previous injection failure is the user agent string you used previously.&lt;/P&gt;
&lt;P&gt;Check whether you've configured any&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots#exclude-browsers" target="_blank" rel="nofollow noopener"&gt;browser exclusion rules&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that might exclude this browser. Also note that OneAgent applies internal rules that disable all RUM functionality for user agents that clearly do not represent real users—such as strings starting with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;curl/&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;PostmanRuntime/&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="h_2903300584451759307563565"&gt;Troubleshooting injection failures without OneAgent's RUM health check&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If your application cannot handle the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent or your infrastructure strips the returned headers, review the following checks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Does the RUM JavaScript injection diagnostics feature return an injection failure reason?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/observe/digital-experience/web-applications/initial-setup/app-health-check#injection-diagnostics" target="_blank" rel="nofollow noopener"&gt;RUM JavaScript injection diagnostics&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;feature on the RUM application health check page offers a convenient way to diagnose injection failures. While it provides fewer insights compared to the health check triggered by the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user agent, we still recommend starting with a diagnostics run before proceeding with the checks outlined below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is automatic injection supported for your technology?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you haven't already done so, refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/ingest-from/technology-support#rum-auto-injection" target="_blank" rel="nofollow noopener"&gt;Technology support - Real User Monitoring - Web servers and applications&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to verify that RUM injection is supported for at least one of the technologies delivering the HTML.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is the HTML served through a cache?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A common reason for missing injection is that the HTML is served through a cache, such as a CDN or a caching proxy. If you're unsure whether this applies to your page, inspect the response headers—CDNs often include custom headers like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;X-Cache: Hit&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;To determine if caching is the cause, try sending a request that bypasses the cache. This ensures the request reaches the instrumented server, giving OneAgent the opportunity to perform the injection. If the injection succeeds when bypassing the cache, then caching is the issue. In that case, you’ll need to either clear the cache or wait for it to update with the injected version of the page.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Are full-stack monitoring and deep monitoring active?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For RUM injection to function, OneAgent must be installed in full-stack monitoring mode. To check this, go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Infrastructure → Hosts&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and select the relevant host. On the host overview page, look for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Monitoring mode&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Also ensure that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/process-group-monitoring" target="_blank" rel="nofollow noopener"&gt;deep monitoring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has not been disabled.&lt;/P&gt;
&lt;P&gt;Make sure the monitored processes were restarted after deploying OneAgent.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM enabled for ASP.NET Core?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you are using ASP.NET Core, verify that the features&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enable Real User Monitoring (RUM) for ASP.NET Core&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;.NET ASP.NET Sensor V2&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are enabled under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Preferences → OneAgent features&lt;/EM&gt;. Restart the processes after enabling these features.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM enabled for your application?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check whether the following setting is enabled in the RUM application:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SaaS:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring Classic&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Managed:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Your RUM application → Settings → General settings -&amp;gt; Enablement and cost control → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With this setting disabled, the RUM JavaScript is not injected.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is application detection set up properly?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ensure that the request for the HTML document maps to the application where you expect it to. This is especially relevant if your environment has any auto-injected applications where RUM is disabled.&lt;/P&gt;
&lt;P&gt;As described in&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 approach&lt;/A&gt;, URL rewriting on an uninstrumented component is a common root cause of application detection issues. Use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-traces/analysis/get-started" target="_blank" rel="nofollow noopener"&gt;Distributed Traces screen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/analyze-explore-automate/distributed-tracing/distributed-tracing-app" target="_blank" rel="nofollow noopener"&gt;Distributed Tracing app&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to locate a trace of the request and identify the URL that actually reaches the first instrumented tier, where the application is detected.&lt;/P&gt;
&lt;P&gt;Parts of the guide&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.dynatrace.com/t5/Troubleshooting/RUM-data-is-assigned-to-a-different-application-than-expected/ta-p/286156" target="_blank" rel="nofollow noopener"&gt;RUM data is assigned to a different application than expected&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;are also applicable to this scenario, particularly the sections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Double-check your application detection rules&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Issues caused by URL rewriting on an uninstrumented component&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM disabled on the process group?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The RUM JavaScript can only be injected if RUM is enabled on the process group. Check whether one of the following settings—or their environment-level equivalents—is disabled:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → Real User Monitoring → Enable Real User Monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;Your process group → Settings → OneAgent features → Real user monitoring&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;On Java, make sure to restart the processes after enabling these settings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is your HTML valid and well-formed?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ensure your HTML is well-formed by following basic best practices—for example, opening and closing all elements properly.&lt;/P&gt;
&lt;P&gt;To work around ill-formed HTML, create a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#custom-injection-rule" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that injects before or after a specific HTML pattern.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Do you have a valid license?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Injection failures may also result from licensing issues. Make sure your license is still valid.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Are browser or IP restrictions rules configured?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check if there are any&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-exclude-bots" target="_blank" rel="nofollow noopener"&gt;browser or IP exclusion rules&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured that suppress injection for your IP or browser.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is RUM disabled for "Do not track" enabled browsers?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the application has the setting&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/global-privacy-settings#do-not-track-gdpr" target="_blank" rel="nofollow noopener"&gt;Disable Real User Monitoring for "Do Not Track" enabled browsers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enabled, ensure that your browser does not send a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DNT&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Do Not Track) header on the request.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is the document request a range request?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check if the document request includes a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Range&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;header and is therefore an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests" target="_blank" rel="nofollow noopener"&gt;HTTP range request&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;If it does, you'll need to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#manual-insertion-using-oneagent" target="_blank" rel="nofollow noopener"&gt;manually insert the RUM JavaScript&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;into the HTML response, since automatic RUM injection is not supported for range requests.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Does a custom injection rule suppress injection?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check whether you have a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.dynatrace.com/docs/shortlink/rum-injection#disable-injection" target="_blank" rel="nofollow noopener"&gt;custom injection rule&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured that suppresses injection for this page.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Is a web request URL exclusion rule in place?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check if a web request URL exclusion rule is configured for the request URL in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Settings → Server-side service monitoring → Deep monitoring → Exclude specific incoming web request URLs&lt;/EM&gt;. On Java, this setting suppresses RUM injection.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Managed Offline: Has the RUM JavaScript been deployed?&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Managed Offline environments, ensure that the required RUM JavaScript version is properly deployed to the cluster.&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 haven't been able to identify the root cause of your issue and solve it, 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;Access details, if the page is publicly available and you can grant access to the support team.&lt;/LI&gt;
&lt;LI&gt;If access cannot be granted: 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—ideally with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;dtHealthCheck&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enabled.&lt;/LI&gt;
&lt;LI&gt;A brief summary of the troubleshooting steps you've completed.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Providing this information upfront will help speed up the resolution process.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 27 Oct 2025 08:46:42 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Troubleshooting/Troubleshooting-automatic-RUM-injection-failures/ta-p/287116</guid>
      <dc:creator>MargitM</dc:creator>
      <dc:date>2025-10-27T08:46:42Z</dc:date>
    </item>
  </channel>
</rss>

