Skip to content

bug: OpenTelemetry Spans Not Displaying in Self-Hosted Instance Timeline #2821

@Aquesta

Description

@Aquesta

Provide environment information

Self-hosted Instance: │ │

  • Trigger.dev Version: main (Docker image from 2024-12-26) │ │
  • Deployment: Docker Compose (official hosting/docker/webapp setup)
  • Instance URL: trigger.devneurox.tech │ │
  • Docker Images: │ │
  • Webapp: ghcr.io/triggerdotdev/trigger.dev:main (c3af7f05c1da) │ │
  • Supervisor: ghcr.io/triggerdotdev/supervisor:main (d3d1d21ad176)

Describe the bug

Issue: OpenTelemetry Spans Not Displaying in Self-Hosted Instance Timeline

Environment:

  • Trigger.dev SDK: v4.3.1
  • Self-hosted instance: trigger.devneurox.tech
  • Cloud instance: cloud.trigger.dev

Problem Description:

OpenTelemetry spans created with logger.trace() are not visible in the timeline UI on our self-hosted Trigger.dev instance, but they work correctly on the official cloud instance (cloud.trigger.dev).

Configuration:

trigger.config.ts:

import { defineConfig } from "@trigger.dev/sdk";
import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
import { FetchInstrumentation } from "@opentelemetry/instrumentation-fetch";

export default defineConfig({
  project: "proj_iahascmunqsxfplmrepp",
  runtime: "node",
  logLevel: "log",
  telemetry: {
    instrumentations: [
      new HttpInstrumentation(),
      new FetchInstrumentation(),
    ],
  },
  // ...
});

Code Example:

const marketData = await logger.trace("bybit-api-calls", async (span) => {
  span.setAttribute("symbol", input.symbol);
  span.setAttribute("endpoints", "getTicker, getOpenInterest, getLongShortRatio, getFundingRate");
  return await bybitAPI.getMarketData(input.symbol);
});

Expected Behavior:

Timeline should show individual spans with hierarchy and timing.

Actual Behavior:

Self-Hosted: Timeline shows only one solid green bar - no spans visible
Cloud (cloud.trigger.dev): Timeline correctly shows all spans 
Steps to Reproduce:

Deploy same code with [logger.trace()](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html) spans to both self-hosted and cloud
Trigger task execution
Compare timeline view in dashboard
Additional Info:

Tasks execute successfully on both instances. Console logs show correct timing. Issue appears UI-specific to self-hosted.

Question: What self-hosted dashboard version is required for span visualization?

### Reproduction repo

N/A - Private repository. Can provide minimal reproduction example if needed.

### To reproduce

**Steps to reproduce:**

1. Configure Trigger.dev with OpenTelemetry instrumentations:
```typescript
telemetry: {
  instrumentations: [
    new HttpInstrumentation(),
    new FetchInstrumentation(),
  ],
}
2. Add [logger.trace() spans in your task code:
const result = await logger.trace("operation-name", async (span) => {
  span.setAttribute("key", "value");
  return await someOperation();
});

3 Deploy to self-hosted instance (trigger.devneurox.tech)
4 Deploy same code to cloud instance (cloud.trigger.dev)
5 Execute task on both instances
6 Compare timeline view in dashboard
Expected: Timeline shows individual spans with hierarchy and timing

Actual on self-hosted: Timeline shows only one solid green bar - no span breakdown visible

Actual on cloud: Timeline correctly displays all spans with proper hierarchy 

Note: Tasks execute successfully on both - issue is UI-only on self-hosted.

### Additional information

<img width="751" height="345" alt="Image" src="https://github.com/user-attachments/assets/6eb7b2a4-6265-4c92-a2bd-d6d72e3eaa02" />

<img width="647" height="418" alt="Image" src="https://github.com/user-attachments/assets/d506c4ab-7812-4d50-ba20-73e56df4a86c" />

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions