Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vite: Missing stacktrace on SSR import errors #9041

Open
dcramer opened this issue Mar 12, 2024 · 3 comments
Open

vite: Missing stacktrace on SSR import errors #9041

dcramer opened this issue Mar 12, 2024 · 3 comments
Labels
bug:unverified feat:dx Issues related to the developer experience package:dev vite

Comments

@dcramer
Copy link
Contributor

dcramer commented Mar 12, 2024

Reproduction

Had invalid default import for isbot, which was failing in entry.server.ts:

import isbot from "isbot";

export default async function handleRequest(
  request: Request,
  responseStatusCode: number,
  responseHeaders: Headers,
  remixContext: EntryContext,
) {
  if (isSitemapUrl(request)) return await sitemap(request, remixContext);

  return isbot(request.headers.get("user-agent"))
    ? handleBotRequest(
        request,
        responseStatusCode,
        responseHeaders,
        remixContext,
      )
    : handleBrowserRequest(
        request,
        responseStatusCode,
        responseHeaders,
        remixContext,
      );
}

System Info

System:
    OS: Linux 5.10 Ubuntu 20.04 LTS (Focal Fossa)
    CPU: (16) x64 Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz
    Memory: 10.22 GB / 15.57 GB
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
  Binaries:
    Node: 20.11.0 - ~/.volta/tools/image/node/20.11.0/bin/node
    Yarn: 1.22.19 - ~/.volta/tools/image/yarn/1.22.19/bin/yarn
    npm: 10.2.4 - ~/.volta/tools/image/node/20.11.0/bin/npm
    pnpm: 8.15.4 - ~/src/peated/node_modules/.bin/pnpm
    bun: 1.0.30 - ~/.bun/bin/bun
  Browsers:
    Chrome: 108.0.5359.124
  npmPackages:
    @remix-run/dev: ^2.8.1 => 2.8.1
    @remix-run/eslint-config: ^2.8.1 => 2.8.1
    @remix-run/express: ^2.8.1 => 2.8.1
    @remix-run/node: ^2.8.1 => 2.8.1
    @remix-run/react: ^2.8.1 => 2.8.1
    @remix-run/serve: ^2.8.1 => 2.8.1
    @remix-run/server-runtime: ^2.8.1 => 2.8.1
    vite: ^5.1.6 => 5.1.6

Used Package Manager

npm

Expected Behavior

Include some degree of a stacktrace to ensure the behavior is debuggable. It appears hidden within the Vite renderer, and its unclear if anything can be done about that.

Vite's SSR suggest you enrich the error with vite.ssrFixStacktrace, but I'm not familiar enough with their internals to know if that missing link is the issue here.

Actual Behavior

Unexpected Server Error

TypeError: __vite_ssr_import_4__.default is not a function

The error is swallowed inside of handleRequest (in @remix-run/express), so unable to diagnose further without reimplementing that (which I'm working on right now).

@brophdawg11 brophdawg11 added package:dev feat:dx Issues related to the developer experience vite labels Mar 13, 2024
@dtrikannad
Copy link

dtrikannad commented Mar 31, 2024

I'm getting something similar at the same line of code in entry.server.ts. What is strange is that this works great while just running the following from the terminal, but can't debug through launch.json from within vscode. Not sure what the difference is.

npm run dev

The error I see in the browser when i load http:https://localhost:5173/ is:

Unexpected Server Error

TypeError: __vite_ssr_import_0__.jsxDEV is not a function

Here is my stacktrace:

TypeError: __vite_ssr_import_0__.jsxDEV is not a function
    at /Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/app/entry.server.tsx:101:7
    at new Promise (<anonymous>)
    at handleBrowserRequest (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/app/entry.server.tsx:98:10)
    at handleRequest (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/app/entry.server.tsx:34:7)
    at handleDocumentRequestRR (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/server-runtime/dist/server.js:231:18)
    at process.processTicksAndRejections (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/lib/internal/process/task_queues.js:95:5)
    at async requestHandler (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/server-runtime/dist/server.js:108:18)
    at async nodeHandler (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/dev/dist/vite/plugin.js:837:27)
    at async /Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/dev/dist/vite/plugin.js:840:15 {stack: 'TypeError: __vite_ssr_import_0__.jsxDEV is no…les/@remix-run/dev/dist/vite/plugin.js:840:15', message: '__vite_ssr_import_0__.jsxDEV is not a function'}
TypeError: __vite_ssr_import_0__.jsxDEV is not a function
    at /Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/app/entry.server.tsx:101:7
    at new Promise (<anonymous>)
    at handleBrowserRequest (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/app/entry.server.tsx:98:10)
    at handleRequest (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/app/entry.server.tsx:34:7)
    at handleDocumentRequestRR (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/server-runtime/dist/server.js:284:20)
    at process.processTicksAndRejections (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/lib/internal/process/task_queues.js:95:5)
    at async requestHandler (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/server-runtime/dist/server.js:108:18)
    at async nodeHandler (/Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/dev/dist/vite/plugin.js:837:27)
    at async /Users/deeptrikannad/Documents/Business_Ideas/Acceledgy/Development/ai-research/extraction/node_modules/@remix-run/dev/dist/vite/plugin.js:840:15 {stack: 'TypeError: __vite_ssr_import_0__.jsxDEV is no…les/@remix-run/dev/dist/vite/plugin.js:840:15', message: '__vite_ssr_import_0__.jsxDEV is not a function'}

Here is my envinfo output:

  System:
    OS: macOS 14.4
    CPU: (10) arm64 Apple M1 Max
    Memory: 14.25 GB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 21.6.1 - /usr/local/bin/node
    npm: 10.2.4 - /usr/local/bin/npm
    pnpm: 8.15.5 - /opt/homebrew/bin/pnpm
    bun: 1.0.26 - ~/.bun/bin/bun
  Browsers:
    Chrome: 123.0.6312.87
    Safari: 17.4
  npmPackages:
    @langchain/community: ^0.0.43 => 0.0.43 
    @langchain/openai: ^0.0.25 => 0.0.25 
    @prisma/client: ^5.11.0 => 5.11.0 
    @remix-run/dev: ^2.8.1 => 2.8.1 
    @remix-run/node: ^2.8.1 => 2.8.1 
    @remix-run/react: ^2.8.1 => 2.8.1 
    @remix-run/serve: ^2.8.1 => 2.8.1 
    @tailwindcss/typography: ^0.5.12 => 0.5.12 
    @types/react: ^18.2.73 => 18.2.73 
    @types/react-dom: ^18.2.23 => 18.2.23 
    @typescript-eslint/eslint-plugin: ^7.4.0 => 7.4.0 
    @typescript-eslint/parser: ^7.4.0 => 7.4.0 
    autoprefixer: ^10.4.19 => 10.4.19 
    daisyui: ^4.9.0 => 4.9.0 
    eslint: ^8.57.0 => 8.57.0 
    eslint-import-resolver-typescript: ^3.6.1 => 3.6.1 
    eslint-plugin-import: ^2.29.1 => 2.29.1 
    eslint-plugin-jsx-a11y: ^6.8.0 => 6.8.0 
    eslint-plugin-react: ^7.34.1 => 7.34.1 
    eslint-plugin-react-hooks: ^4.6.0 => 4.6.0 
    isbot: ^5.1.3 => 5.1.3 
    langchain: ^0.1.30 => 0.1.30 
    mammoth: ^1.7.1 => 1.7.1 
    officeparser: ^4.0.8 => 4.0.8 
    pdf-parse: ^1.1.1 => 1.1.1 
    postcss: ^8.4.38 => 8.4.38 
    prisma: ^5.11.0 => 5.11.0 
    react: ^18.2.0 => 18.2.0 
    react-dom: ^18.2.0 => 18.2.0 
    remix-auth-google: ^2.0.0 => 2.0.0 
    remix-auth-socials: ^2.0.6 => 2.0.6 
    tailwindcss: ^3.4.3 => 3.4.3 
    ts-node: ^10.9.2 => 10.9.2 
    typescript: ^5.4.3 => 5.4.3 
    vite: ^5.2.7 => 5.2.7 
    vite-tsconfig-paths: ^4.3.2 => 4.3.2 

@dtrikannad
Copy link

I do have a debug work around which is a pain in the @$$, but it works. I can run npm run dev from the commmand line and then just attach the debugger manually.

@stevan-borus
Copy link

Just stumbled upon this issue in my app..

Try

import { isbot } from 'isbot';

instead of

import isbot from 'isbot';

It resolved the problem for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug:unverified feat:dx Issues related to the developer experience package:dev vite
Projects
None yet
Development

No branches or pull requests

4 participants