Skip to content

Error when trying to load Fedify 2.0 from a Fresh 2.0 app #621

@jfietkau

Description

@jfietkau

Summary

I am attempting to upgrade my Fedify application from Fedify 1.x and Fresh 1.x to version 2.0 of both frameworks. I am running into fatal errors seemingly related to the multicodec module that prevent the pages from rendering as soon as I invoke Fedify.

Note that this is not about the middleware integration, which I have not yet attempted. This is just about running Fresh 2.0 and Fedify 2.0 within the same codebase.

This bug report comes with a big caveat: I have not yet tested Fedify 2.0 without Fresh 2.0, and as a result I am not sure if Fresh 2.0 is indeed a necessary component to trigger this error. My assumption is that there must be something about my project environment that triggers it for me but not others, and Fresh 2.0 seems like the most obvious candidate.

Expected Behavior

Fedify 2.0 should not prevent Fresh 2.0 apps from functioning.

Actual Behavior

Running Fedify 2.0 in a Fresh 2.0 application causes a fatal error.

Environment

  • Deno 2.7.5
  • Fedify 2.0.5
  • Fresh 2.2.0 (using vite 7.3.1)

Running on Linux

Logs / Screenshots

GET http://localhost:5174/
TypeError: varint.encode is not a function
    at varintEncode (./node_modules/.deno/multicodec@3.2.1/node_modules/multicodec/src/util.js:40:1)
    at ./node_modules/.deno/multicodec@3.2.1/node_modules/multicodec/src/maps.js:20:29
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (./node_modules/.deno/multicodec@3.2.1/node_modules/multicodec/src/index.js:15:1)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/vocab-runtime/2.0.5/src/key.ts:13:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/vocab-runtime/2.0.5/src/mod.ts:27:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/webfinger/2.0.5/src/lookup.ts:4:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/webfinger/2.0.5/src/mod.ts:5:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/vocab/2.0.5/src/actor.ts:8:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/vocab/2.0.5/src/mod.ts:4:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/fedify/2.0.5/src/federation/builder.ts:5:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
    at async SSRCompatModuleRunner.cachedRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1053:73)
    at async eval (deno::0::https://jsr.io/@fedify/fedify/2.0.5/src/federation/mod.ts:9:31)
    at async ESModulesEvaluator.runInlinedModule (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:913:3)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/module-runner.js:1146:59)
    at async SSRCompatModuleRunner.directRequest (./node_modules/.deno/vite@7.3.1/node_modules/vite/dist/node/chunks/config.js:15111:22)
error: Uncaught NotFound: No such file or directory (os error 2) about ["./routes/.goutputstream-RZE2L3"]
    at new FsWatcher (ext:runtime/40_fs_events.js:23:17)
    at Object.watchFs (ext:runtime/40_fs_events.js:73:10)
    at ext:deno_node/_fs/_fs_watch.ts:57:21
    at callback (ext:deno_web/02_timers.js:42:7)

Note: I have replaced my full project path with "." in the above logs.

Steps to Reproduce

  1. Create a Fresh 2.0 demo project: deno run -Ar jsr:@fresh/init
  2. Navigate into the project directory and add Fedify: deno add jsr:@fedify/fedify
  3. Edit routes/index.tsx:
    1. Add import { createFederation } from "@fedify/fedify"; near the top of the file
    2. Somewhere within Home, for example after the console output, add createFederation<null>();
  4. Run deno task dev
  5. Open the website in the browser and observe the error messages

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions