---
title: Troubleshoot cross application tracing
source: https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/troubleshoot-cross-application-tracing
---

Here are troubleshooting tips when using [cross application traces](https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/introduction-cross-application-traces). Note that this feature is not the same as [distributed tracing](https://docs.newrelic.com/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), which is preferred over cross application tracing.

## Agent versions and protocols [#agents]

Make sure you meet these requirements for your agent's version, protocols, interfaces, or message queue libraries. If you are using a protocol that is not listed here, you will not see a connection between your applications.

| **Agent version**                                                                                                   | **Notes**                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Go 1.11 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/go-release-notes/go-agent-111) | HTTP, HTTPS                                                                                                                                                                             |
| [Java 3.9.0 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/java-release-notes)         | HTTP, HTTPs, JMS 1.1, RabbitMQ The Java agent also supports several message queue libraries, including those that use the JMS 1.1 interface.                                            |
| [.NET 4.2 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/net-release-notes)            | HTTP, and [supported .NET messaging systems](https://docs.newrelic.com/docs/agents/net-agent/getting-started/compatibility-requirements-net-agent#messaging)                            |
| [Node.js 2.0.0 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/nodejs-release-notes)    | HTTP, HTTPS, RabbitMQ                                                                                                                                                                   |
| [PHP 4.19.0 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/php-release-notes)          | HTTP, HTTPS, and [supported PHP message queuing systems](https://docs.newrelic.com/docs/agents/php-agent/getting-started/php-agent-compatibility-requirements#queuing)                  |
| [Python 2.38.0.31 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/python-release-notes) | HTTP, HTTPS, and [supported Python message queuing systems](https://docs.newrelic.com/docs/agents/python-agent/supported-features/python-message-queues)                                |
| [Ruby 4.3.0 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/ruby-release-notes)         | [HTTP](https://docs.newrelic.com/docs/agents/ruby-agent/features/http-client-tracing-ruby), HTTPS, [RabbitMQ](https://docs.newrelic.com/docs/agents/ruby-agent/features/message-queues) |

## Config file requirements [#requirements]

In general, New Relic's cross application tracing feature is enabled by default. Requirements to change your configuration file vary, depending on your New Relic agent:

-   Go (not supported)
-   [Java](https://docs.newrelic.com/docs/agents/java-agent/configuration/java-agent-configuration-config-file#Cross_Application_Tracer)
-   [.NET](https://docs.newrelic.com/docs/agents/net-agent/installation-and-configuration/net-agent-configuration#cross_application_tracer)
-   [Node.js](https://docs.newrelic.com/docs/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration) (no specific config file settings needed for Node.js)
-   [PHP](https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration#inivar-cross-app-tracer-enabled)
-   [Python](https://docs.newrelic.com/docs/agents/python-agent/installation-configuration/python-agent-configuration#cross-application-tracer)
-   [Ruby](https://docs.newrelic.com/docs/agents/ruby-agent/features/cross-application-tracing-ruby)

## High throughput apps

Cross application traces rely on transaction events to associate related transactions. If you have a high throughput application, your agent may reach the maximum number of events that it can record in a minute and will fall back to sampling events. If a transaction’s events are sampled, you may see an incomplete cross application trace, including sometimes only the transactions that you are focused on.

If your application has high throughput, some cross application traces will appear incomplete, sometimes with no links. Try viewing a different transaction trace. To reduce or eliminate sampling, you can also adjust the number of transaction events stored in your agent configuration.

| **High throughput apps** | **Troubleshooting tips**                                                                                                                                                                                         |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java                     | In the **transaction_events** section, adjust the [setting](https://docs.newrelic.com/docs/agents/java-agent/configuration/java-agent-configuration-config-file#ae-max_samples_stored) for `max_samples_stored`. |
| Ruby                     | Adjust the [setting](https://docs.newrelic.com/docs/agents/ruby-agent/installation-and-configuration/ruby-agent-configuration#analytics_events) for `analytics_events.max_samples_stored`.                       |

## Proxies

If you expect to see a cross application trace link but it consistently does not appear, there may be a proxy or broker between your application’s communication. Cross application tracing relies on HTTP headers and JMS properties being passed from one application to other. HTTP proxies and message brokers sometimes strip those headers.

## Multi-threaded processing (Java) [#multi-threaded-processing]

If one or more of your Java applications uses an async or "reactive" programming model, a transaction's activity may span across multiple threads. New Relic supports the Play framework and Servlet Async but not all async frameworks. For unsupported frameworks, activity on other threads is not reported as part of the transaction. Calls to other applications will not be traced.

## Multiple accounts [#accounts]

Currently cross application traces do not cross New Relic accounts. If you have multiple New Relic accounts (including child accounts), you will only see traces for applications within one account.

Our [distributed tracing](https://docs.newrelic.com/docs/distributed-tracing/concepts/introduction-distributed-tracing) feature does cross account boundaries.
