hyperdxio / hyperdxio/hyperdx-js

Module import error in Next.js

Open
#171 8 comments 1 reaction 1 assignee View on GitHub

@wrn14897 is already working on this.

Since Nov 19, 2024.

Dominant language
TypeScript
Stars
25
Forks
30
Avg merge
4h 26m
Merged PRs (30d)
6

Description

[Case]
I'm trying to integrate hdx into a t3-stack nextjs project, unfortunately I got two kinds of errors in dev environment.

You can see this demo repo for minimal reproduction.

[Description]
The first error happened after running "next dev" and compiling the first page.
It does not break the app but produced a huge error stack in console. Logs and traces are collected properly.
Full log:

[⚡HyperDX] ℹ

View your app dashboard here:
https://www.hyperdx.io/services?service=hdx-test
To disable these startup logs, set HDX_STARTUP_LOGS=false


 ✓ Ready in 11.3s
 ○ Compiling / ...
 ⚠ ./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/index.js
./src/server/api/logger.ts
./src/server/api/trpc.ts
./src/trpc/server.ts
./src/app/page.tsx

./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/index.js
./src/server/api/logger.ts
./src/server/api/trpc.ts
./src/trpc/server.ts
./src/app/page.tsx

./node_modules/.pnpm/@opentelemetry+instrumentation-winston@0.37.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/instrumentation-winston/build/src/instrumentation.js
Module not found: Can't resolve '@opentelemetry/winston-transport' in '/Users/user/hdx-test/node_modules/.pnpm/@opentelemetry+instrumentation-winston@0.37.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/instrumentation-winston/build/src'

Import trace for requested module:
./node_modules/.pnpm/@opentelemetry+instrumentation-winston@0.37.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/instrumentation-winston/build/src/instrumentation.js
./node_modules/.pnpm/@opentelemetry+instrumentation-winston@0.37.0_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/instrumentation-winston/build/src/index.js
./node_modules/.pnpm/@opentelemetry+auto-instrumentations-node@0.46.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/.pnpm/@opentelemetry+auto-instrumentations-node@0.46.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/index.js
./src/server/api/logger.ts
./src/server/api/trpc.ts
./src/trpc/server.ts
./src/app/page.tsx

./node_modules/.pnpm/@opentelemetry+sdk-node@0.51.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/sdk-node/build/src/TracerProviderWithEnvExporter.js
Module not found: Can't resolve '@opentelemetry/exporter-jaeger' in '/Users/user/hdx-test/node_modules/.pnpm/@opentelemetry+sdk-node@0.51.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/sdk-node/build/src'

Import trace for requested module:
./node_modules/.pnpm/@opentelemetry+sdk-node@0.51.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/sdk-node/build/src/TracerProviderWithEnvExporter.js
./node_modules/.pnpm/@opentelemetry+sdk-node@0.51.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/sdk-node/build/src/sdk.js
./node_modules/.pnpm/@opentelemetry+sdk-node@0.51.1_@opentelemetry+api@1.9.0/node_modules/@opentelemetry/sdk-node/build/src/index.js
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/index.js
./src/server/api/logger.ts
./src/server/api/trpc.ts
./src/trpc/server.ts
./src/app/page.tsx

The second error happened after running "next dev --turbo" and compiling the first page.
It broke the app and showed nextjs's error page.
Full log:

⨯ ModuleBuildError: ./node_modules/.pnpm/@hyperdx+node-opentelemetry@0.8.1/node_modules/@hyperdx/node-opentelemetry/build/src/otel.js
Module not found

https://nextjs.org/docs/messages/module-not-found

    at processIssues (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/turbopack-utils.js:229:15)
    at handleRouteType (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/turbopack-utils.js:386:17)
    at async Object.ensurePage (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/hot-reloader-turbopack.js:647:17)
    at async DevBundlerService.ensurePage (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/dev-bundler-service.js:18:20)
    at async DevServer.ensurePage (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/next-dev-server.js:551:9)
    at async Object.ensure (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/next-dev-server.js:169:17)
    at async DevRouteMatcherManager.matchAll (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matcher-managers/dev-route-matcher-manager.js:96:13)
    at async DevRouteMatcherManager.match (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matcher-managers/default-route-matcher-manager.js:155:26)
    at async NextNodeServer.handleCatchallRenderRequest (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/next-server.js:228:31)
    at async DevServer.handleRequestImpl (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/base-server.js:816:17)
    at async /Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/next-dev-server.js:339:20
    at async Span.traceAsyncFn (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/trace/trace.js:154:20)
    at async DevServer.handleRequest (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/next-dev-server.js:336:24)
    at async invokeRender (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-server.js:174:21)
    at async handleRequest (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-server.js:353:24)
    at async requestHandlerImpl (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-server.js:377:13)
    at async Server.requestListener (/Users/user/hdx-test/node_modules/.pnpm/next@14.2.5_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/start-server.js:141:13)

[Environment]
My environment is macOS + Node20 + pnpm9.5.0 + Next14 + @hyperdx/node-opentelemetry0.8.1

[Additional Info]
Some peer dependencies issues were found when installing @hyperdx/node-opentelemetry. I'm not sure if they are related to the errors, but I hope they can be addressed too.


dependencies:

- @hyperdx/node-opentelemetry 0.8.1

WARN  Issues with peer dependencies found
.
└─┬ @hyperdx/node-opentelemetry 0.8.1
├─┬ @opentelemetry/instrumentation-http 0.51.1
│ └─┬ @opentelemetry/core 1.24.1
│ └── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
├─┬ @opentelemetry/sdk-logs 0.51.1
│ ├── ✕ unmet peer @opentelemetry/api@">=1.4.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
│ └─┬ @opentelemetry/resources 1.24.1
│ └── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
└─┬ @opentelemetry/auto-instrumentations-node 0.46.1
└─┬ @opentelemetry/sdk-node 0.51.1
├── ✕ unmet peer @opentelemetry/api@">=1.3.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
├─┬ @opentelemetry/exporter-trace-otlp-grpc 0.51.1
│ └─┬ @opentelemetry/otlp-transformer 0.51.1
│ ├── ✕ unmet peer @opentelemetry/api@">=1.3.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
│ ├─┬ @opentelemetry/sdk-metrics 1.24.1
│ │ └── ✕ unmet peer @opentelemetry/api@">=1.3.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
│ └─┬ @opentelemetry/sdk-trace-base 1.24.1
│ └── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
└─┬ @opentelemetry/sdk-trace-node 1.24.1
├── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
├─┬ @opentelemetry/context-async-hooks 1.24.1
│ └── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
├─┬ @opentelemetry/propagator-b3 1.24.1
│ └── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry
└─┬ @opentelemetry/propagator-jaeger 1.24.1
└── ✕ unmet peer @opentelemetry/api@">=1.0.0 <1.9.0": found 1.9.0 in @hyperdx/node-opentelemetry

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.