Skip to content

Default telemetry exports traces to the placeholder example.com endpoint #2732

Description

@abhinavkr26104

Description

The v4 protocol supplies a telemetry configuration even when callers do not opt in. Its default OTLP trace endpoint is the placeholder https://example.com/v1/traces, and the extension unconditionally creates an OTLP span processor from that default during stagehand.init.

As a result, a default Stagehand instance batches spans for a placeholder third-party domain. Export attempts cannot succeed and may add avoidable network/CORS noise and up to the configured five-second export timeout during flushing or shutdown.

Code reference

  • packages/protocol/schemas.ts:1546-1551 defines DEFAULT_TELEMETRY_CONFIG with https://example.com/v1/traces and a TODO to replace it.
  • packages/protocol/schemas.ts:1607 applies that object as the default for every StagehandInitParamsSchema parse.
  • packages/extension/rpcRouter.ts:78-82 configures tracing before routing stagehand.init.
  • packages/extension/tracing.ts:100-113 always installs an OTLP processor for the supplied configuration.
  • packages/extension/tracing.ts:124-139 configures one-second batching and a five-second exporter timeout.

Reproduction

From the repository root, parse the smallest valid initialization payload:

import { StagehandInitParamsSchema } from "./packages/protocol/schemas.ts";

const params = StagehandInitParamsSchema.parse({
  protocolVersion: "4.0.0",
  clientInfo: { name: "probe", version: "1" },
});

console.log(params.telemetry.traces.endpoint);

Actual output:

https://example.com/v1/traces

Initialize Stagehand without a telemetry option and inspect the extension network requests (or inject a recording SpanProcessor in the tracing tests). Tracing is configured even though the caller did not select an endpoint.

Expected behavior

Until there is an intentional production default, omitted telemetry should not configure an OTLP exporter. Alternatively, the default should be a real documented endpoint with explicit opt-out semantics.

Actual behavior

Omitting telemetry enables export attempts to a placeholder example.com URL.

Why it matters

Default construction should not generate guaranteed-failing background requests. Besides console/network noise, the five-second export timeout can delay shutdown, and the placeholder default obscures whether telemetry is meant to be opt-in or an operational Browserbase feature.

Duplicate/history check

I searched open and closed issues and PRs for example.com/v1/traces, default telemetry, OTLP endpoints, and tracing configuration. The placeholder was introduced by the v4 work in PR #2671 and is still marked TODO; I found no issue, follow-up PR, or discussion saying that exporting to the placeholder is intentional.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions