October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk10 min

Why Cloudflare Traces Are Missing or Incomplete—and How to Troubleshoot Them

Missing Cloudflare trace data usually comes from disabled Worker tracing, head sampling, ingestion limits, cache hits, or expected span gaps. Follow this diagnostic sequence to find the cause and capture a specific request.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Most missing Cloudflare trace data has a straightforward cause: tracing is disabled for the domain or a Worker, the request was not selected by head-based sampling, ingestion limits were reached, or the request took a path that does not produce a dedicated span. Start by confirming the domain and time range, then check every Worker, sampling rules, ingestion status, and whether the apparent gap is an expected cache or feature limitation. For exported traces, verify the OpenTelemetry destination and redeploy; allow several minutes for delivery and do not expect Cloudflare trace IDs to join automatically with services outside Cloudflare.

First, identify which Cloudflare product you are looking at

Cloudflare uses similar names for two different debugging experiences:

As an Amazon Associate I earn from qualifying purchases.

  • Cloudflare Traces shows sampled data from real production requests. A missing request can therefore mean it was not sampled, was not ingested, or did not execute the operation you expected.
  • Cloudflare Trace is a configuration simulation. It evaluates how Cloudflare settings would process a request; it is not a record of what happened to a production request.

Use Traces when you need to inspect an actual Ray ID, duration, status, service, trigger, or span attribute. Use the simulation when you are testing configuration behavior without relying on live traffic. Confusing the two is a common reason an engineer thinks a production trace is missing when they are actually viewing a simulated result.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why is there a gap in my trace?

A trace is assembled from operations that actually ran. It is not a promise that every Cloudflare product or line of application code will receive its own span. A gap usually falls into one of these categories:

What you observe Most likely explanation What to check
No trace for a request The request was not sampled, the domain is not tracing, or ingestion stopped. Time range, Ray ID, domain tracing, sampling rules, and plan ingestion state.
A Worker is absent from an otherwise complete trace Tracing is not enabled for that Worker, or the request did not invoke it. observability.traces.enabled in Wrangler and the deployed Worker path.
No origin or outbound connection span The response may have been served from cache, or that operation did not run. The cache span’s cloudflare.cache.status attribute and the request path.
Security or access activity is not a separate span Some features currently have no dedicated span type. Remember that DDoS protection, Cloudflare Access, and Cloudflare Tunnel can process a request without producing their own dedicated spans.
A trace appears but is still incomplete Collection has not finished. Wait for the root status to change from Trace in Progress.
Cloudflare and another tracing system show separate traces Trace IDs are not currently propagated outside Cloudflare. Join records using your own request identifiers rather than expecting automatic end-to-end correlation.

Use the dashboard to verify the request before changing configuration

  1. Open Cloudflare Traces and select a time range that includes the request. A narrow window can hide a valid trace.
  2. For a single request, search by Ray ID with the documented filter cloudflare.ray_id = "<ray>". Replace the angle-bracketed value with the actual Ray ID.
  3. Open the result as a hierarchy. Expand the root and child spans, or search by span name.
  4. Inspect each span’s status, service, trigger, IDs, duration, and attributes. Note the first point at which the expected operation disappears; that tells you whether the problem is collection, routing, or an operation that never ran.

If a Ray ID search returns nothing, continue with domain, sampling, and ingestion checks. If the root exists but a child is absent, investigate Worker instrumentation and expected feature coverage before assuming data loss.

Check domain-level tracing

Tracing is configured separately for each domain. Confirm that tracing is enabled on the domain that actually handled the request, not merely on another domain in the same account. Redirects, alternate hostnames, and requests routed through a different zone can make this distinction easy to miss.

  • Verify the hostname in the request and the Cloudflare zone responsible for it.
  • Check the domain’s Traces configuration and its selected time range.
  • After changing a domain setting, send a new request and search for its new Ray ID; do not use an older request as proof that the setting failed.

Domain-level trace rules can also change which requests are collected. Their order matters: the first matching rule wins.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check every Worker in the request path

Workers tracing is an additional requirement. A domain can have tracing enabled while an individual Worker remains absent because that Worker was deployed without tracing enabled. Check every Worker that can handle the request, including a Worker reached after a rewrite or service binding.

In Wrangler configuration, enable tracing and deploy the change:

{
  "observability": {
    "traces": {
      "enabled": true
    }
  }
}

Tracing automatically instruments supported Worker activity, including handler invocations, supported fetch calls, binding calls such as KV and R2, Durable Object operations, and RPC calls. Add custom spans around application-specific logic that is not represented by those automatic spans. A custom span is useful for a database abstraction, validation stage, or business operation where the built-in runtime spans do not explain the delay.

After deployment, make a fresh request that definitely invokes the Worker. Check the deployment version and route as well as the trace; a perfectly configured Worker cannot appear if the request took another route.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check head sampling and rule order

Cloudflare makes a head-sampling decision when a request arrives, before it knows whether the request will be slow or fail. A lower rate therefore can omit the very request you are trying to diagnose. Tail-based sampling—waiting to see the result and then retaining only slow or failed requests—is not currently supported.

When Workers tracing is enabled and no rate is specified, the documented default head_sampling_rate is 1, or 100 percent. The valid range is 0 through 1. For example, 0.05 samples about five requests out of every hundred on average; it does not guarantee that every set of 100 requests contains exactly five traces.

Domain-level rules can override the default. Rules are evaluated from top to bottom, and the first matching rule wins. A broad rule placed before a targeted diagnostic rule can prevent the targeted rule from ever being used.

Capture one reproducible request

  1. Choose a temporary, distinctive request header that your test client can send.
  2. Create a trace rule that matches that header and sets the sample rate to 100 percent.
  3. Place the rule above broader rules so it is the first match.
  4. Send one or a small number of test requests with the header.
  5. Search for the resulting Ray ID and remove or disable the diagnostic rule when the investigation is complete.

The capture mechanism is documented by Cloudflare; apply your own access-control and data-handling practices when choosing the header and deciding who can send it. Header names and header operations can be recorded in spans, but header values are not captured. URLs and query strings are captured, so avoid putting sensitive data in a test URL.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check ingestion limits and account state

Cloudflare states that Free accounts have a daily ingestion limit. Once that limit is reached, new traces stop ingesting for the rest of the day. A missing trace after a sampling change can therefore be an account-capacity issue rather than a Worker configuration issue.

  • Check the account’s plan and current trace ingestion state.
  • Compare the time of the missing request with the time ingestion stopped.
  • Test again after the daily limit resets before changing application instrumentation.

Do not infer a numeric daily quota from the absence of a trace; the applicable limit depends on the account and current Cloudflare terms.

Decide whether the missing span is expected

Cache hits do not contact the origin

If Cloudflare serves a response from cache, there may be no origin connection span because no origin connection occurred. Inspect cloudflare.cache.status on the cache span. A value of HIT explains why an expected origin or outbound span is absent; it is not evidence that tracing failed.

Some products have no dedicated span

DDoS protection, Cloudflare Access, and Cloudflare Tunnel do not currently have dedicated spans. Requests handled by those features can still appear in a trace, but you should not expect a separate child span for each one.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Only executed operations can appear

Conditional code, short-circuiting, cache responses, and alternate routing can all produce a valid trace with fewer spans than a different request. Compare the actual trigger and route with the path you expected rather than treating a fixed span count as a completeness test.

Wait for a trace that is still being produced

The root of a newly collected trace can display Trace in Progress. Wait briefly, refresh the trace, and inspect it again. If it remains in progress unusually long, record the Ray ID, time, and account so you can distinguish delayed completion from a request that was never ingested.

How do I export traces to another observability system?

Cloudflare supports named account-level OpenTelemetry destinations. Export has two separate failure points: configuration and delivery. A correctly configured dashboard does not prove that the Worker is exporting, and an event visible in the external destination does not mean it will be joined automatically to an external service trace.

Configure the destination and redeploy

  1. Create or verify the destination in the Cloudflare observability dashboard.
  2. Copy its name exactly, including capitalization and punctuation.
  3. Set that exact name under observability.traces.destinations in Wrangler.
  4. Choose whether Cloudflare should retain a copy. persist defaults to true; set it to false when exporting without storing the trace in Cloudflare.
  5. Redeploy the Worker after changing the configuration.
  6. Generate a new request and allow several minutes for exported events to arrive. This is a qualitative delivery estimate, not a guaranteed service-level target.

Cloudflare documentation lists Honeycomb, Grafana Cloud, and Axiom as compatibility examples for OpenTelemetry destinations. Their inclusion demonstrates supported destination patterns, not a guarantee of current pricing, retention, or availability.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why the external trace is not one end-to-end trace

Workers trace IDs are not currently propagated to services outside Cloudflare. Consequently, Cloudflare and an external system can each show a valid trace while displaying different IDs and separate trees. Use a Ray ID, application request ID, or another identifier that you deliberately log in both systems to correlate the records.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Read spans without over-interpreting beta behavior

The platform-level span reference includes a cloudflare_request root and a response span, along with supported request-processing operations and Worker runtime spans. The exact set of spans depends on the operations performed by that request.

  • Zero-millisecond non-I/O spans: Runtime security measures related to Spectre can cause non-I/O operations to report 0 ms even when they took longer. Do not use such a value as proof that the code consumed no CPU time.
  • Names and attributes can change: Tracing is beta, and span names, structure, and attributes may change as the product evolves. Build filters defensively and check the current span reference before hard-coding names.
  • Worker grouping: Cloudflare recommends $metadata.service for consistently grouping Worker names across traces and logs. Attributes such as service.name and faas.name currently apply only to some spans.
  • Header visibility: Header names and operations on headers are captured, but header values are not. URLs and query strings are captured, which can affect both debugging and data exposure.

Cloudflare’s dashboard or an external destination?

Decision factor Cloudflare Traces External OpenTelemetry destination
Where you query Inside the Cloudflare dashboard, alongside Cloudflare request context. In the configured observability platform, alongside telemetry from other systems.
Cross-service correlation Strongest for operations represented inside Cloudflare. Useful when the destination already receives application telemetry, but Cloudflare IDs are not currently propagated to non-Cloudflare services.
Delivery speed Available in the dashboard after collection completes. Cloudflare says exported events may take several minutes to arrive.
Retention and cost Subject to Cloudflare’s trace retention and account ingestion/storage rules. Subject to the destination’s retention and commercial terms, plus any Cloudflare persistence setting.
Configuration work Enable domain and Worker tracing, then use dashboard filters. Configure a named destination in Wrangler and redeploy; verify delivery separately.

Workers trace retention is documented as seven days. Cloudflare also states that persisted Workers traces will begin contributing to account-level ingestion and storage usage on December 1, 2026; this is a future-dated policy statement and should be rechecked before relying on it for budgeting or retention design.

Targeted troubleshooting branches

No result for a known Ray ID

  1. Confirm the Ray ID and expand the time range.
  2. Confirm the request reached the traced domain.
  3. Check the domain’s tracing status and rule order.
  4. Check sampling and the account’s ingestion state.
  5. Generate a new request with a temporary 100-percent debug rule.

The root exists, but the Worker is missing

  1. Identify every Worker that could have handled the route.
  2. Verify observability.traces.enabled: true in the deployed configuration of each one.
  3. Confirm the request actually invoked that deployment.
  4. Look for a cache hit or alternate route that bypassed the Worker.

There is no outbound or origin span

Inspect the cache status first. A cache hit means the origin was never contacted. If the request was not a cache hit, verify that the code path executed the outbound operation and that the relevant Worker has tracing enabled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The trace is in Cloudflare but not in the external tool

  1. Verify the destination name matches exactly in Wrangler and the dashboard.
  2. Confirm the Worker was redeployed after the destination was configured.
  3. Check whether persist is intentionally false.
  4. Wait several minutes and search the external tool by its received event metadata.
  5. Use a shared application request identifier for correlation; do not rely on Cloudflare trace-ID propagation.

A practical checklist for future incidents

  • Am I viewing production Cloudflare Traces rather than the configuration simulation?
  • Did I select the correct domain and time range, and can I search the Ray ID with cloudflare.ray_id = "<ray>"?
  • Is domain-level tracing enabled?
  • Is tracing enabled and deployed on every Worker in the request path?
  • Did head sampling or a first-match rule omit this request?
  • Has the account reached its ingestion limit?
  • Was the response a cache hit, or did the request use a feature without a dedicated span?
  • Does the root still say Trace in Progress?
  • For exports, does the destination name match exactly, was the Worker redeployed, and has enough time passed for delivery?
  • Am I interpreting beta span names, attributes, zero-duration timings, and external trace IDs within their documented limits?

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.