Skip to content

[telemetry-sdk-node] Reject conflicting TelemetryRuntime.init configurations #1702

Description

@kang-heewon

Priority: P1

Problem

Concurrent or later TelemetryRuntime.init calls silently return the first initialization promise or completed runtime even when the caller requested different service or exporter settings.

Evidence

packages/telemetry-sdk-node/src/libs/runtime.ts:61-87 returns the existing promise at lines 77-79 and existing initialized state at lines 73-75 without comparing requested configuration.

Desired outcome

Only semantically identical initialization is idempotent; conflicting bootstraps fail clearly.

Implementation path

  1. Capture a canonical configuration fingerprint before initialization.
  2. Permit equal repeated calls only.
  3. Raise a stable conflict Problem for differing requests, including disabled/enabled modes.
  4. Add concurrent and post-init conflict tests.

Acceptance criteria

  • Equal configuration calls share initialization safely.
  • Differing configuration never appears to succeed.
  • Diagnostics identify the conflicting runtime state.

Validation

pnpm --filter @croco/telemetry-sdk-node test

Scope boundaries

Does not introduce multi-runtime telemetry support.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1 issueruntimeRuntime behavior, lifecycle, and environment capability worktelemetry-sdk-node

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions