getting a few weird errors when trying

getting a few weird errors when trying to run this
workerd/server/server.c++:2676: error: Fallback service failed to fetch module; payload = ; spec = /?specifier=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-validator%400.1.11_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-validator%2Fdist%2Fesm%2Findex.js&referrer=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-openapi%400.9.8_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-openapi%2Fdist%2Findex.mjs
workerd/server/server.c++:2676: error: Fallback service failed to fetch module; payload = ; spec = /?specifier=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-validator%400.1.11_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-validator%2Fdist%2Fesm%2Findex.js&referrer=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-openapi%400.9.8_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-openapi%2Fdist%2Findex.mjs
the mentioned package @hono/zod-validator is installed and runs correctly when I run the worker via wrangler has anyone run into something similar?
22 Replies
chronark
chronarkOPā€¢9mo ago
here's a cleaner version of the error:
Error: No such module "Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/@hono/zod-validator".
imported from "Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/index.mjs"
Error: No such module "Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/@hono/zod-validator".
imported from "Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/index.mjs"
MrBBot
MrBBotā€¢9mo ago
Hey! šŸ‘‹ Could you post your full terminal output from running the command? If you could run with the NODE_DEBUG=vitest-pool-workers:module-fallback environment variable set, that would be great too. Although note this will generate a lot of output, so you might want to pipe it to a file.
chronark
chronarkOPā€¢9mo ago
sure thing, one sec
chronark
chronarkOPā€¢9mo ago
MrBBot
MrBBotā€¢9mo ago
Hmmm, that's interesting. It looks like @hono/zod-validator is being treated as a CommonJS module even though it's an ES module šŸ˜• I'm guessing this is because it's trying to load a .js file, but "type": "module" isn't included the package.json
chronark
chronarkOPā€¢9mo ago
let me rip it out and try again it's not super critical to use right now was I just blind and couldn't see that error or how did you know that's the issue?
MrBBot
MrBBotā€¢9mo ago
Yeah, looks like https://github.com/honojs/middleware/blob/main/packages/zod-validator/package.json doesn't include "type": "module", but this is because the package exports both CommonJS and ES modules. I think the fix is for Hono to update their ES module version to use the .mjs extension.
chronark
chronarkOPā€¢9mo ago
cool, I'll let them know
MrBBot
MrBBotā€¢9mo ago
Seen something similar before, this was the important part:
VITEST-POOL-WORKERS:MODULE-FALLBACK 18102: import("/Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-validator/dist/esm/index.js") relative to /Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/index.mjs: error: Error: Parse error @7:1:8
at Module.parse (file:///Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/[email protected]/node_modules/cjs-module-lexer/dist/lexer.mjs:2:383)
at getCjsNamedExports (file:///Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected]_@[email protected]_@vitest+runner@1_7mbdxuy4qanlvzhdssu3kelb2i/node_modules/@cloudflare/vitest-pool-workers/dist/pool/index.mjs:654:49)
VITEST-POOL-WORKERS:MODULE-FALLBACK 18102: import("/Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-validator/dist/esm/index.js") relative to /Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/index.mjs: error: Error: Parse error @7:1:8
at Module.parse (file:///Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/[email protected]/node_modules/cjs-module-lexer/dist/lexer.mjs:2:383)
at getCjsNamedExports (file:///Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected]_@[email protected]_@vitest+runner@1_7mbdxuy4qanlvzhdssu3kelb2i/node_modules/@cloudflare/vitest-pool-workers/dist/pool/index.mjs:654:49)
Essentially, a JavaScript file was failing to be parsed as CommonJS, which usually means it contains import/export statements.
chronark
chronarkOPā€¢9mo ago
aah ok ok I removed the package now it crashes with the next hono package šŸ˜„ I guess that's as far as I'll get today, thank you so much
MrBBot
MrBBotā€¢9mo ago
Oh dear ok. šŸ˜… Thanks for letting them know though. šŸ‘
chronark
chronarkOPā€¢9mo ago
do you know by chance if there's a way to override it locally? I'd love to try out the vitest integration properly without waiting on them I tried just adding type: module but the error remains
MrBBot
MrBBotā€¢9mo ago
Hmmm, I think renaming the dist/esm/*.js files to dist/esm/*.mjs and updating the package.json to use the new *.mjs files would work. Depending on how many packages you need to update, that might be a bit tedious though.
chronark
chronarkOPā€¢9mo ago
just one or two let me try, thank you hmm, there's actually no dist/esm at all, so maybe it's a different issue šŸ˜„
MrBBot
MrBBotā€¢9mo ago
Inside @hono/zod-validator? Or another package?
chronark
chronarkOPā€¢9mo ago
it's looking in /node_modules/.pnpm/...
No such module "Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/@hono/zod-validator".
No such module "Users/andreasthomas/github/unkeyed/unkey/node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@hono/zod-openapi/dist/@hono/zod-validator".
but this is what actualyl exists:
No description
chronark
chronarkOPā€¢9mo ago
@hono/zod-validator is missing from that directory entirely or maybe I am misunderstanding how it should work
MrBBot
MrBBotā€¢9mo ago
Ah those paths aren't quite correct. When workerd sends a request to the module fallback service, it resolves the specifier with the referrer directory. So import("@hono/zod-validator") inside /a/b/c/index.mjs would result in a request for /a/b/c/@hono/zod-validator. Because workerd also sends the referrer, we're able to perform the reverse operation to get the actual specifier.
chronark
chronarkOPā€¢9mo ago
šŸ¤Æ you wizards, you šŸ˜„
/?specifier=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-validator%400.1.11_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-validator%2Fdist%2Fesm%2Findex.js&referrer=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-openapi%400.9.8_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-openapi%2Fdist%2Findex.mjs
/?specifier=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-validator%400.1.11_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-validator%2Fdist%2Fesm%2Findex.js&referrer=%2FUsers%2Fandreasthomas%2Fgithub%2Funkeyed%2Funkey%2Fnode_modules%2F.pnpm%2F%40hono%2Bzod-openapi%400.9.8_hono%404.1.0_zod%403.22.4%2Fnode_modules%2F%40hono%2Fzod-openapi%2Fdist%2Findex.mjs
then I'll continue my search here šŸ™‚ aand there's the esm šŸ™‚
YoannMa
YoannMaā€¢9mo ago
Hi, having literally the same issue šŸ˜… @chronark Did you find a way to fix it without modifying every hono's middleware ?
chronark
chronarkOPā€¢9mo ago
nope, I gave up for now :/ I raised it in hono's discord but that's pretty messy and I think it just got lost
YoannMa
YoannMaā€¢9mo ago
Guess I'll give up, zod-openapi is broken as well Test are overrated anyway šŸ˜‚
Want results from more Discord servers?
Add your server