houdini icon indicating copy to clipboard operation
houdini copied to clipboard

Circular dependencies in $houdini folder

Open shadow-identity opened this issue 1 year ago • 9 comments
trafficstars

Describe the bug

Generated $houdini folder has some circular dependencies across *.js files. It may lead to unpredictable consequences, including vite hangs.

It is reproducible in the example-sveltekit-todo project. The minimal reproduction repo I provide is an example-sveltekit-todo fork, with updated houdini and added vite-plugin-circular-dependency to simplify the search of circular dependencies.

Found circular dependencies are:

  $houdini/runtime/cache/cache.js
  	$houdini/runtime/cache/cache.js -> $houdini/runtime/cache/lists.js
  	$houdini/runtime/cache/cache.js -> $houdini/runtime/cache/subscription.js


  $houdini/index.js
  	$houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/stores/mutation.js -> $houdini/plugins/houdini-svelte/stores/AddItem.js -> $houdini/plugins/houdini-svelte/stores/index.js -> src/client.ts
  	$houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js -> $houdini/plugins/houdini-svelte/stores/AllItems.js -> $houdini/plugins/houdini-svelte/stores/index.js -> src/client.ts
  	$houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/fragment.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js -> src/client.ts
  	$houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js -> src/client.ts

First two are absolutely valid (verified manually), tho I'm not 100% sure about the rest: it is quite hard to go through many of export * from 'foo'.

Reproduction

https://github.com/shadow-identity/example-sveltekit-todo

shadow-identity avatar Jun 07 '24 11:06 shadow-identity

Thanks for reporting these. If you have the time/energy to give it a shot i'd gladly offer any assistance you need.

AlecAivazis avatar Jul 08 '24 23:07 AlecAivazis

This is causing regular issues with my project - vite starts fine, but any hot reload has a chance of crashing vite with a circular dependency error in SSR, even when working on pages with no houdini interactions.

fnimick avatar Aug 06 '24 02:08 fnimick

10:17:02 PM [vite] page reload $houdini/runtime/index.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/fragments.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/index.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/session.js
10:17:02 PM [vite] page reload $houdini/runtime/client/index.js
10:17:02 PM [vite] page reload $houdini/runtime/client/documentStore.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/config.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/flatten.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/deepEquals.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/index.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/lru.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/log.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/key.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/pageInfo.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/pagination.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/scalars.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/selection.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/store.js
10:17:02 PM [vite] page reload $houdini/runtime/lib/types.js
10:17:02 PM [vite] page reload $houdini/runtime/public/cache.js
10:17:02 PM [vite] page reload $houdini/runtime/public/index.js
10:17:02 PM [vite] page reload $houdini/runtime/public/record.js
10:17:02 PM [vite] page reload $houdini/runtime/public/list.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/gc.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/cache.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/index.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/lists.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/staleManager.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/stuff.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/subscription.js
10:17:02 PM [vite] page reload $houdini/runtime/cache/storage.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/base.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/index.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/mutation.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/query.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/subscription.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/fragment.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/cache.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/fetch.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/fetchParams.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/fragment.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/mutation.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/index.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/query.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/optimisticKeys.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/subscription.js
10:17:02 PM [vite] page reload $houdini/runtime/client/plugins/throwOnError.js
10:17:02 PM [vite] page reload $houdini/runtime/client/utils/documentPlugins.js
10:17:02 PM [vite] page reload $houdini/runtime/client/utils/index.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/fragment.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js
10:17:02 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/types.js
10:17:02 PM [vite] page reload $houdini/runtime/router/types.js
10:17:02 PM [vite] page reload $houdini/runtime/index.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/fragments.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/index.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/session.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/cache.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/gc.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/index.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/storage.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/stuff.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/staleManager.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/lists.js
10:17:03 PM [vite] page reload $houdini/runtime/cache/subscription.js
10:17:03 PM [vite] page reload $houdini/runtime/client/documentStore.js
10:17:03 PM [vite] page reload $houdini/runtime/client/index.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/config.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/deepEquals.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/flatten.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/key.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/log.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/lru.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/pageInfo.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/index.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/scalars.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/pagination.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/store.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/types.js
10:17:03 PM [vite] page reload $houdini/runtime/public/cache.js
10:17:03 PM [vite] page reload $houdini/runtime/public/index.js
10:17:03 PM [vite] page reload $houdini/runtime/lib/selection.js
10:17:03 PM [vite] page reload $houdini/runtime/public/record.js
10:17:03 PM [vite] page reload $houdini/runtime/public/list.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/base.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/fragment.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/mutation.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/index.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/query.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/subscription.js
10:17:03 PM [vite] page reload $houdini/runtime/client/utils/documentPlugins.js
10:17:03 PM [vite] page reload $houdini/runtime/client/utils/index.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/cache.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/fragment.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/fetch.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/index.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/fetchParams.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/mutation.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/optimisticKeys.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/query.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/subscription.js
10:17:03 PM [vite] page reload $houdini/runtime/client/plugins/throwOnError.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/fragment.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js
10:17:03 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/types.js
10:17:03 PM [vite] page reload $houdini/runtime/router/types.js
10:18:21 PM [vite] page reload src/routes/api/acuity/webhook/+server.ts
10:18:22 PM [vite] page reload $houdini/runtime/index.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/fragments.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/index.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/session.js
10:18:22 PM [vite] page reload $houdini/runtime/client/index.js
10:18:22 PM [vite] page reload $houdini/runtime/client/documentStore.js
10:18:22 PM [vite] page reload $houdini/runtime/public/cache.js
10:18:22 PM [vite] page reload $houdini/runtime/public/index.js
10:18:22 PM [vite] page reload $houdini/runtime/public/list.js
10:18:22 PM [vite] page reload $houdini/runtime/public/record.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/config.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/deepEquals.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/flatten.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/index.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/lru.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/log.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/pageInfo.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/scalars.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/pagination.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/selection.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/store.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/types.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/cache.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/index.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/gc.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/lists.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/stuff.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/storage.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/base.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/staleManager.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/subscription.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/fragment.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/index.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/mutation.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/query.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/subscription.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/key.js
10:18:22 PM [vite] page reload $houdini/runtime/client/utils/documentPlugins.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/cache.js
10:18:22 PM [vite] page reload $houdini/runtime/client/utils/index.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/fetch.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/fetchParams.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/fragment.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/index.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/mutation.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/query.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/optimisticKeys.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/subscription.js
10:18:22 PM [vite] page reload $houdini/runtime/client/plugins/throwOnError.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/fragment.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/types.js
10:18:22 PM [vite] page reload $houdini/runtime/router/types.js
10:18:22 PM [vite] page reload $houdini/runtime/index.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/fragments.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/index.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/cache.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/gc.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/index.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/lists.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/staleManager.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/stuff.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/storage.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/session.js
10:18:22 PM [vite] page reload $houdini/runtime/client/documentStore.js
10:18:22 PM [vite] page reload $houdini/runtime/client/index.js
10:18:22 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/types.js
10:18:22 PM [vite] page reload $houdini/runtime/cache/subscription.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/config.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/deepEquals.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/flatten.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/index.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/key.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/log.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/lru.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/pageInfo.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/pagination.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/scalars.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/selection.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/store.js
10:18:22 PM [vite] page reload $houdini/runtime/lib/types.js
10:18:22 PM [vite] page reload $houdini/runtime/public/cache.js
10:18:22 PM [vite] page reload $houdini/runtime/public/index.js
10:18:22 PM [vite] page reload $houdini/runtime/public/record.js
10:18:22 PM [vite] page reload $houdini/runtime/public/list.js
10:18:23 PM [vite] page reload $houdini/runtime/router/types.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/base.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/fragment.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/index.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/mutation.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/query.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/subscription.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/cache.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/fetch.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/fetchParams.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/fragment.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/index.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/mutation.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/optimisticKeys.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/query.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/subscription.js
10:18:23 PM [vite] page reload $houdini/runtime/client/utils/documentPlugins.js
10:18:23 PM [vite] page reload $houdini/runtime/client/utils/index.js
10:18:23 PM [vite] page reload $houdini/runtime/client/plugins/throwOnError.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/fragment.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js
10:18:23 PM [vite] page reload $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js
10:18:23 PM [vite] Error when evaluating SSR module /$houdini/runtime/cache/lists.js: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

10:18:23 PM [vite] Error when evaluating SSR module /$houdini/runtime/cache/cache.js: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

10:18:23 PM [vite] Error when evaluating SSR module /$houdini/runtime/cache/index.js: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

10:18:23 PM [vite] Error when evaluating SSR module /$houdini/runtime/client/index.js: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

10:18:23 PM [vite] Error when evaluating SSR module /$houdini/index.js: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

10:18:23 PM [vite] Error when evaluating SSR module /src/hooks.server.ts: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

10:18:23 PM [vite] Error when evaluating SSR module /src/routes/+layout.ts: failed to import "/$houdini/runtime/cache/cache.js"
|- Error: [vite] The dependency module is not yet fully initialized due to circular dependency. This is a bug in Vite SSR
    at ssrImport (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52599:19)
    at eval (/Users/francis/project/$houdini/runtime/cache/lists.js:4:37)
    at async instantiateModule (file:///Users/francis/project/node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:52650:5)

fnimick avatar Aug 06 '24 02:08 fnimick

@fnimick looking through your logs, i think the culprit is that first cycle that @shadow-identity called out. I pushed up a branch that removes it - mind seeing if that was enough to fix your issue? The branch name is circular-imports

AlecAivazis avatar Aug 14 '24 12:08 AlecAivazis

Gonna 👀 this. I'm seeing similar behavior on latest version (1.2.54).

✖ Found 4 circular dependencies!

1) $houdini/runtime/cache/cache.js > $houdini/runtime/cache/lists.js
2) $houdini/runtime/cache/cache.js > $houdini/runtime/cache/subscription.js
3) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/subscription.d.ts
4) .svelte-kit/output/server/chunks/query.js > .svelte-kit/output/server/chunks/client.js```

ryanbmarx avatar Aug 15 '24 14:08 ryanbmarx

that circle should be fixed in the branch. Let me open a PR with just that fix

AlecAivazis avatar Aug 16 '24 07:08 AlecAivazis

Thanks for the fix!

The first two error messages don't appear anymore, but the last four (from $houdini/index.js) are still here. I updated the reproduction repository with the updated houdini and houdini-svelte dependencies.

Should we reopen the ticket or create a new one?

  $houdini/index.js
        $houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/stores/mutation.js -> $houdini/plugins/houdini-svelte/stores/AddItem.js -> $houdini/plugins/houdini-svelte/stores/index.js -> src/client.ts
        $houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js -> $houdini/plugins/houdini-svelte/stores/AllItems.js -> $houdini/plugins/houdini-svelte/stores/index.js -> src/client.ts
        $houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/fragment.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js -> src/client.ts
        $houdini/index.js -> $houdini/plugins/houdini-svelte/runtime/client.js -> $houdini/plugins/houdini-svelte/runtime/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/index.js -> $houdini/plugins/houdini-svelte/runtime/stores/pagination/query.js -> src/client.ts

shadow-identity avatar Aug 16 '24 13:08 shadow-identity

For some reason, even without updating houdini, I haven't run into circular imports in a while. Unfortunately I am not able to reliably duplicate the issue - it tends to happen after my dev server has been running and doing hot reloads and rebuilds for hours.

fnimick avatar Aug 21 '24 20:08 fnimick

Thanks for the update @fnimick. I'm gonna leave this issue open to address them anyway, just to be sure.

AlecAivazis avatar Aug 21 '24 21:08 AlecAivazis

I've been unable to reproduce this for a while so i'm going to close it

AlecAivazis avatar Jan 14 '25 08:01 AlecAivazis

I kindly suggest reopening the issue. These seem to have resurfaced (tested on [email protected], [email protected], [email protected] [email protected], with the exact same behaviour @fnimick found.

vite starts fine, but any hot reload has a chance of crashing vite with a circular dependency error in SSR, even when working on pages with no houdini interactions.

I've been using houdini for a while (and find it very useful!), yet this issue comes from nowhere. However strange, this seems to be expected behaviour on vite which will only show up in larger projects, due to the way it avoids chaos on HMR (probably a recursion counter limit): https://github.com/vitejs/vite/discussions/16424

This is the vite dev error log. Substitute the first store.js with any store name, it is not related to that specific one.
TypeError: Class extends value undefined is not a constructor or null
    at /app/suite/$houdini/plugins/houdini-svelte/stores/GetUserAddresses.js:5:44
    at async ESModulesEvaluator.runInlinedModule (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/module-runner.js:1049:5)
    at async SSRCompatModuleRunner.directRequest (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/module-runner.js:1271:61)
    at async SSRCompatModuleRunner.directRequest (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/chunks/dep-ByPKlqZ5.js:30913:23)
    at async SSRCompatModuleRunner.cachedRequest (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/module-runner.js:1167:76)
    at async eval (/app/apiviews/src/lib/user/SmartAddressInput.svelte:3:360)
    at async ESModulesEvaluator.runInlinedModule (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/module-runner.js:1049:5)
    at async SSRCompatModuleRunner.directRequest (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/module-runner.js:1271:61)
    at async SSRCompatModuleRunner.directRequest (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/chunks/dep-ByPKlqZ5.js:30913:23)
    at async SSRCompatModuleRunner.cachedRequest (file:///app/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/vite/dist/node/module-runner.js:1167:76)

The vite error says nothing, but madge found quite a few circular dependencies in my project, all related to houdini (minus one sveltekit on ./$types which is unrelated). However, it appears that all of them are related to import type (.d.ts). They definitely don't cause issues on built files, but do they with vite HMR? My bet is they don't.

View log
pnpm npx madge --circular --extensions=js,svelte,ts ./
1) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/gc.d.ts
2) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts
3) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/match.d.ts > $houdini/runtime/lib/index.d.ts > $houdini/runtime/lib/config.d.ts
4) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/match.d.ts > $houdini/runtime/lib/index.d.ts > $houdini/runtime/lib/scalars.d.ts
5) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/match.d.ts > $houdini/runtime/lib/index.d.ts > $houdini/runtime/lib/selection.d.ts
6) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/match.d.ts > $houdini/runtime/lib/index.d.ts
7) $houdini/runtime/router/types.d.ts > $houdini/runtime/router/match.d.ts
8) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts
9) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/documentStore.d.ts
10) $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/documentStore.d.ts
11) $houdini/runtime/client/index.d.ts > $houdini/runtime/client/documentStore.d.ts
12) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/documentStore.d.ts
13) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/cache.d.ts
14) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/cache.d.ts > $houdini/runtime/cache/index.d.ts
15) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/fetch.d.ts
16) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/fetchParams.d.ts
17) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/fragment.d.ts
18) $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/fragment.d.ts
19) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/mutation.d.ts
20) $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/mutation.d.ts
21) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/optimisticKeys.d.ts
22) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/lists.d.ts > $houdini/runtime/cache/storage.d.ts > $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/query.d.ts
23) $houdini/runtime/client/index.d.ts > $houdini/runtime/client/plugins/index.d.ts > $houdini/runtime/client/plugins/query.d.ts
24) $houdini/runtime/lib/types.d.ts > $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts > $houdini/runtime/client/index.d.ts
25) $houdini/runtime/router/types.d.ts > $houdini/runtime/router/server.d.ts
26) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/staleManager.d.ts
27) $houdini/runtime/cache/cache.d.ts > $houdini/runtime/cache/subscription.d.ts
28) $houdini/runtime/public/cache.d.ts > $houdini/runtime/public/list.d.ts
29) $houdini/runtime/public/record.d.ts > $houdini/runtime/public/cache.d.ts > $houdini/runtime/public/list.d.ts > $houdini/runtime/public/types.d.ts
30) $houdini/runtime/public/record.d.ts > $houdini/runtime/public/cache.d.ts

Nevertheless, the houdini repo has quite a few circular dependencies, which don't appear when scanning the importer project. I propose cleaning them up. Even if they weren't the cause for these HMR errors, it is still best practice.

Running `madge --circular` (ignoring circular type imports) finds the following:
✖ Found 12 circular dependencies!
  1. src/houdini/packages/houdini-react/src/plugin/index.ts > src/houdini/packages/houdini-react/src/plugin/vite.tsx
  2. src/houdini/packages/houdini-react/src/runtime/routing/Router.tsx > src/houdini/packages/houdini-react/src/runtime/hooks/useDocumentHandle.ts
  3. src/houdini/packages/houdini-react/src/runtime/hooks/useDocumentStore.ts > src/houdini/packages/houdini-react/src/runtime/routing/index.ts > src/houdini/packages/houdini-react/src/runtime/routing/Router.tsx
  4. src/houdini/packages/houdini-svelte/src/plugin/kit.ts > src/houdini/packages/houdini-svelte/src/plugin/extract.ts
  5. src/houdini/packages/houdini-svelte/src/plugin/kit.ts > src/houdini/packages/houdini-svelte/src/plugin/extractLoadFunction.ts
  6. src/houdini/packages/houdini-svelte/src/plugin/index.ts > src/houdini/packages/houdini-svelte/src/plugin/fsPatch.ts
  7. src/houdini/packages/houdini/src/lib/index.ts > src/houdini/packages/houdini/src/lib/config.ts > src/houdini/packages/houdini/src/lib/router/index.ts > src/houdini/packages/houdini/src/lib/router/conventions.ts
  8. src/houdini/packages/houdini/src/lib/index.ts > src/houdini/packages/houdini/src/lib/config.ts > src/houdini/packages/houdini/src/lib/router/index.ts > src/houdini/packages/houdini/src/lib/router/manifest.ts
  9. src/houdini/packages/houdini/src/lib/index.ts > src/houdini/packages/houdini/src/lib/config.ts > src/houdini/packages/houdini/src/lib/router/index.ts > src/houdini/packages/houdini/src/lib/router/server.ts
  10. src/houdini/packages/houdini/src/lib/index.ts > src/houdini/packages/houdini/src/lib/detectTools.ts
  11. src/houdini/packages/houdini/src/lib/index.ts > src/houdini/packages/houdini/src/lib/typescript.ts
  12. src/houdini/packages/houdini/src/codegen/generators/runtime/index.ts > src/houdini/packages/houdini/src/codegen/generators/runtime/pluginRuntime.ts

I'm having a try at a PR at the moment.

rgon avatar Mar 15 '25 14:03 rgon

PR #1450 seems to have fixed all the HMR crashing on my project (with no other change). Given the intermittent nature of the issue, I will comment on this thread if it happens again, but it totally seems to be working again!

EDIT: it (v1.5.4) has fixed both the cryptic circular reference errors and full page reloads on every HMR change caused by those same circular dependencies invalidating the module graph. Yay!!

rgon avatar Mar 16 '25 00:03 rgon

I seem to run into the exact error described here on with [email protected] and [email protected].

The application loads fine the first time but as soon as the first HMR happens I get the error below. After that the application does not load anymore, even when reloading the page, so this basically makes development impossible.

Anyone any insights what might be causing this?

Vite Logs
11:10:35 AM [vite] (ssr) Error when evaluating SSR module /src/routes/customers/[[customer]]/+page.ts: Class extends value undefined is not a constructor or null
      at /Users/christian/Code/billkit/services/portal/.houdini/plugins/houdini-svelte/stores/Report.js:5:34
      at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
      at async ESModulesEvaluator.runInlinedModule (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1062:5)
      at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1284:61)
      at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/chunks/dep-DBxKXgDP.js:25274:23)
      at async SSRCompatModuleRunner.cachedRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1180:76)
      at async eval (/Users/christian/Code/billkit/services/portal/src/routes/customers/[[customer]]/+page.ts:1:1)
      at async ESModulesEvaluator.runInlinedModule (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1062:5)
      at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1284:61)
      at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/chunks/dep-DBxKXgDP.js:25274:23)
TypeError: Class extends value undefined is not a constructor or null
    at /Users/christian/Code/billkit/services/portal/.houdini/plugins/houdini-svelte/stores/Report.js:5:34
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1062:5)
    at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1284:61)
    at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/chunks/dep-DBxKXgDP.js:25274:23)
    at async SSRCompatModuleRunner.cachedRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1180:76)
    at async eval (/Users/christian/Code/billkit/services/portal/src/routes/customers/[[customer]]/+page.ts:1:1)
    at async ESModulesEvaluator.runInlinedModule (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1062:5)
    at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/module-runner.js:1284:61)
    at async SSRCompatModuleRunner.directRequest (file:///Users/christian/Code/billkit/services/portal/node_modules/vite/dist/node/chunks/dep-DBxKXgDP.js:25274:23
npx madge --circular --extensions=js,svelte,ts ./
Processed 307 files (885ms) (39 warnings)

✖ Found 30 circular dependencies!

1) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/gc.d.ts
2) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts
3) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/match.d.ts > .houdini/runtime/lib/index.d.ts > .houdini/runtime/lib/config.d.ts
4) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/match.d.ts > .houdini/runtime/lib/index.d.ts > .houdini/runtime/lib/scalars.d.ts
5) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/match.d.ts > .houdini/runtime/lib/index.d.ts > .houdini/runtime/lib/selection.d.ts
6) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/match.d.ts > .houdini/runtime/lib/index.d.ts
7) .houdini/runtime/router/types.d.ts > .houdini/runtime/router/match.d.ts
8) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts
9) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/documentStore.d.ts
10) .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/documentStore.d.ts
11) .houdini/runtime/client/index.d.ts > .houdini/runtime/client/documentStore.d.ts
12) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/documentStore.d.ts
13) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/cache.d.ts
14) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/cache.d.ts > .houdini/runtime/cache/index.d.ts
15) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/fetch.d.ts
16) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/fetchParams.d.ts
17) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/fragment.d.ts
18) .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/fragment.d.ts
19) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/mutation.d.ts
20) .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/mutation.d.ts
21) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/optimisticKeys.d.ts
22) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/lists.d.ts > .houdini/runtime/cache/storage.d.ts > .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/query.d.ts
23) .houdini/runtime/client/index.d.ts > .houdini/runtime/client/plugins/index.d.ts > .houdini/runtime/client/plugins/query.d.ts
24) .houdini/runtime/lib/types.d.ts > .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts > .houdini/runtime/client/index.d.ts
25) .houdini/runtime/router/types.d.ts > .houdini/runtime/router/server.d.ts
26) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/staleManager.d.ts
27) .houdini/runtime/cache/cache.d.ts > .houdini/runtime/cache/subscription.d.ts
28) .houdini/runtime/public/cache.d.ts > .houdini/runtime/public/list.d.ts
29) .houdini/runtime/public/record.d.ts > .houdini/runtime/public/cache.d.ts > .houdini/runtime/public/list.d.ts > .houdini/runtime/public/types.d.ts
30) .houdini/runtime/public/record.d.ts > .houdini/runtime/public/cache.d.ts

cblaettl avatar May 16 '25 09:05 cblaettl

@cblaettl have you tried cleaning your installed packages (by running pnpm prune and pnpm i or running rm -r node_modules and pnpm i)? I've had this issue when switching to branches that had old houdini and such.

Also check to see if any dependencies import older houdini (I don't recall any specific command, but you can read the pnpm lockfile cat pnpm-lock.yaml | grep houdini:

rgon avatar May 16 '25 09:05 rgon

@cblaettl have you tried cleaning your installed packages (by running pnpm prune and pnpm i or running rm -r node_modules and pnpm i)? I've had this issue when switching to branches that had old houdini and such.

Also check to see if any dependencies import older houdini (I don't recall any specific command, but you can read the pnpm lockfile cat pnpm-lock.yaml | grep houdini:

Thanks for your reply, @rgon. I just now got back to the project.

I tried your suggestions but the issue still persists. My project is a very simple, freshly created sveltekit app using houdini. Therefore I'm confused why the issue occurs?

cblaettl avatar Jun 19 '25 08:06 cblaettl

As a workaround I disabled SSR at the root layout (/src/routes/+layout.ts) by setting export const ssr = false;. Vite now does a full page reload on every code change I make. This is far from optimal but at least it does not completely block development as it did before. Still not sure what exactly causes the issue in the first place...

cblaettl avatar Jun 19 '25 09:06 cblaettl