Skip to content

[BUG]: Cannot initialize tracer when importing package.json while using Bun #7480

@kota65535

Description

@kota65535

Tracer Version(s)

5.85.0

Node.js Version(s)

Bun 1.3.8

Bug Report

After importing package.json as an ESM module and then initializing Tracer, the following error occurs.

39 | 
40 |     directory = path.dirname(directory)
41 |   }
42 | }
43 | 
44 | module.exports = Object.assign(findPkg(), { findRoot, findUp })
                             ^
TypeError: Attempted to assign to readonly property.
      at <anonymous> (/Users/t-ozawa/Toggle/trace-test/node_modules/.bun/[email protected]/node_modules/dd-trace/packages/dd-trace/src/pkg.js:44:25)

Bun caches a read-only module namespace when loading JSON via ESM. Currently, dd-trace's pkg.js attempts to append to the return value of require('package.json') using Object.assign(..., { findRoot, findUp }), which causes it to crash due to trying to write to that read-only object.

Reproduction Code

import tracer from "dd-trace";
import pkg from "./package.json";

console.log(pkg.version);

tracer.init();

Error Logs

39 | 
40 |     directory = path.dirname(directory)
41 |   }
42 | }
43 | 
44 | module.exports = Object.assign(findPkg(), { findRoot, findUp })
                             ^
TypeError: Attempted to assign to readonly property.
      at <anonymous> (/Users/t-ozawa/Toggle/trace-test/node_modules/.bun/[email protected]/node_modules/dd-trace/packages/dd-trace/src/pkg.js:44:25)
      at getProcessTags (/Users/t-ozawa/Toggle/trace-test/node_modules/.bun/[email protected]/node_modules/dd-trace/packages/dd-trace/src/process-tags/index.js:18:9)
      at <anonymous> (/Users/t-ozawa/Toggle/trace-test/node_modules/.bun/[email protected]/node_modules/dd-trace/packages/dd-trace/src/process-tags/index.js:60:18)
      at <anonymous> (/Users/t-ozawa/Toggle/trace-test/node_modules/.bun/[email protected]/node_modules/dd-trace/packages/dd-trace/src/span_format.js:8:9)
      at <anonymous> (/Users/t-ozawa/Toggle/trace-test/node_modules/.bun/[email protected]/node_modules/dd-trace/packages/dd-trace/src/span_processor.js:4:7)

Bun v1.3.8 (macOS arm64)

Tracer Config

No configuration

Operating System

macOS 14.6.1

Bundling

Unsure

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions