Skip to content

CLI crashes on startup with @opentelemetry/semantic-conventions default export error #1088

Open

Description

@arshinalbab

Summary

Root Cause

  1. Upstream Breaking Change:
    • On October 28, 2026, @opentelemetry/semantic-conventions@1.44.0 was published. In this release, the package build was revamped with tsdown,
    routing ESM imports directly to ./dist/index.mjs, which exposes only named exports and no default export.
    • In previous versions (1.43.0 and earlier), exports fell back to CommonJS (build/src/index.js), which allowed Node.js to synthesize a default
    export object.

  2. Permissive Semver Range:
    • command-code (the package behind cmdc) specified "@opentelemetry/semantic-conventions": "^1.30.0" in its dependencies.
    • When installed, npm resolved the dependency to the newly released 1.44.0.
    • The bundled code in cli.mjs performs:
    import ze from "@opentelemetry/semantic-conventions";

    • Because 1.44.0 has no default export, Node.js halted execution with a SyntaxError.

──────

Resolution Applied

  1. Downgraded Dependency:
    • Replaced @opentelemetry/semantic-conventions in command-code's global node_modules with version 1.43.0.
  2. Pinned Version:
    • Pinned the dependency to exact version "1.43.0" in package.json to prevent automatic re-upgrades until command-code publishes an official
    patch.
  3. Verification:
    • Verified that cmdc --version (outputs 1.88.1), cmdc --help, and cmdc info execute and exit cleanly without errors.

────────────────────────────────────────────────────────────

need to file bug on github issues with the exact packge version give me content for this

▸ Thought for 6s
Here is a complete, preformatted issue report ready to paste into GitHub Issues:
──────

Title

[Bug]: SyntaxError: The requested module '@opentelemetry/semantic-conventions' does not provide an export named 'default' on startup

──────

Issue Body

### Describe the Bug

When running `cmdc` (or `cmd`, `command-code`), the CLI crashes immediately on startup with a `SyntaxError`:

SyntaxError: The requested module '@opentelemetry/semantic-conventions' does not provide an export named 'default'
at #_instantiate (node:internal/modules/esm/module_job:254:21)
at async ModuleJob.run (node:internal/modules/esm/module_job:369:5)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:691:26)
at async file:///.../command-code/dist/index.mjs:2:1757

### Environment

- **Package Version**: `command-code@1.88.1`
- **Node Version**: `v24.11.0` (affects Node >= 22)
- **OS**: Windows (win32 x64) / macOS / Linux
- **npm Version**: Current (`npm i -g command-code`)

### Steps to Reproduce

1. Install `command-code` globally:
   ```bash
   npm install -g command-code
  1. Run any command:
    cmdc --version
    # or
    cmd

  2. Observe the crash before the CLI loads.

Root Cause Analysis

  1. In command-code@1.88.1's package.json, @opentelemetry/semantic-conventions is specified as:
    "@opentelemetry/semantic-conventions": "^1.30.0"

  2. On October 28, 2026, @opentelemetry/semantic-conventions@1.44.0 was released. This release revamped the build output with tsdown and routed
    exports directly to pure ESM (./dist/index.mjs), which provides only named exports and no default export.

  3. In earlier versions (1.43.0 and below), the package entrypoint pointed to CommonJS (build/src/index.js), enabling Node's synthetic default
    import.

  4. Because ^1.30.0 resolves to 1.44.0 on fresh installs, dist/cli.mjs fails when executing:
    import ze from "@opentelemetry/semantic-conventions";
    // ...
    ({ ATTR_SERVICE_NAME: ZD, ATTR_SERVICE_VERSION: eN } = ze)

Proposed Solutions

Any of the following will fix the issue:

  1. Named Import (Recommended): Change the import in the source to named imports:
    import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
    or namespace import:
    import * as ze from "@opentelemetry/semantic-conventions";

  2. Pin Dependency Version: Pin the dependency in package.json until the import style is updated:
    "@opentelemetry/semantic-conventions": "1.43.0"

Expected Behavior

Expected Behavior

The CLI (`cmdc`, `cmd`, or `command-code`) should start up successfully and display the interactive interface or handle flags (e.g.,
`--version`, `--help`) without throwing a module resolution `SyntaxError`.

Actual Behavior

### Actual Behavior

The CLI immediately crashes upon execution and exits with code 1 before loading any commands or interface:

```text
SyntaxError: The requested module '@opentelemetry/semantic-conventions' does not provide an export named 'default'
    at #_instantiate (node:internal/modules/esm/module_job:254:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:369:5)
    at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:691:26)
    at async file:///.../command-code/dist/index.mjs:2:1757

Node.js v24.11.0

Steps to reproduce the issue

Steps to Reproduce

1. Install `command-code` globally via npm (or clean install):
   ```bash
   npm install -g command-code
  1. Run any command or flag using cmdc, cmd, or command-code:
    cmdc --version
    (or simply cmdc)
  2. The process crashes immediately with the SyntaxError.

Command Code Version

1.88.1

Operating System

Windows

Terminal/IDE

No response

Shell

No response

Session file (optional)

No response

Fix prompt (optional)

### Context
`@opentelemetry/semantic-conventions@1.44.0` switched its ESM build (`dist/index.mjs`) to export only named attributes, dropping the synthetic
CommonJS default export. Because `package.json` specifies `"^1.30.0"`, fresh installs pull in `1.44.0`, breaking `import ze from
"@opentelemetry/semantic-conventions"` with:
`SyntaxError: The requested module '@opentelemetry/semantic-conventions' does not provide an export named 'default'`

### Instructions
1. In the source file where `@opentelemetry/semantic-conventions` is imported:
   - Replace any default import (`import ze from "@opentelemetry/semantic-conventions"`) with named imports:
     ```typescript
     import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
     ```
   - Or change to a namespace import:
     ```typescript
     import * as ze from "@opentelemetry/semantic-conventions";
     ```
2. (Optional safeguard) Pin the dependency in `package.json`:
   ```json
   "@opentelemetry/semantic-conventions": "~1.43.0"
   ```
3. Rebuild the CLI and ensure `cmdc --version` executes cleanly without throwing `SyntaxError`.
`````*

Additional context

No response

Activity

  1. added theissue type on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions