framework
framework copied to clipboard
Two more ways to trigger "nuxt instance unavailable", one inside a pinia store action, one inside a plugin
Environment
- Operating System:
Darwin - Node Version:
v18.12.0 - Nuxt Version:
3.0.0-rc.14,3.0.0 - Nitro Version:
1.0.0 - Package Manager:
[email protected] - Builder:
vite - User Config:
css,modules,nitro,runtimeConfig - Runtime Modules:
@pinia/[email protected],@pinia/[email protected] - Build Modules:
-
Reproduction
https://stackblitz.com/edit/nuxt-starter-4tlygh?file=plugins%2F01.api.js,stores%2Fmain.js
Describe the bug
There are two points in my code where I get "nuxt instance unavailable", probably because of calling useNuxtApp and useRuntimeConfig repeatedly in nested function calls.
One looks roughly like this:
// inside a plugin
// This works fine
nuxtApp.$log.info('Sending request...');
setTimeout(() => {
// FIXME: nuxt instance unavailable
nuxtApp.$log.info('Got response: Dummy data');
resolve({ dummy: 'data' });
}, 2000);
The other one looks like this:
// inside a store
const { $api, $log } = useNuxtApp();
// This works fine
$log.info('Loading external data...');
const extData = await $api.getData();
// FIXME: nuxt instance unavailable
$log.info('External data loaded.', extData);
Additional context
No response
Logs
Error inside the store looks like this:
[nuxt] [request error] [unhandled] [500] nuxt instance unavailable 10:27:46
at useNuxtApp (./node_modules/nuxt/dist/app/nuxt.mjs:165:13)
at Module.useRuntimeConfig (./node_modules/nuxt/dist/app/nuxt.mjs:173:10) 10:27:40
at log (./utils/logger.js:11:40)
at Object.info (./utils/logger.js:24:5)
at Proxy.loadExternalData (./stores/main.js:23:12)
at async eval (./plugins/02.init.server.js:11:95)
at async Object.callAsync (./node_modules/unctx/dist/index.mjs:72:16)
at async applyPlugin (./node_modules/nuxt/dist/app/nuxt.mjs:97:23)
at async Module.applyPlugins (./node_modules/nuxt/dist/app/nuxt.mjs:107:5)
at async createNuxtAppServer (./node_modules/nuxt/dist/app/entry.mjs:29:7)
Error inside the plugin looks like this:
[nitro] [dev] [uncaughtException] Error: nuxt instance unavailable 10:13:52
at useNuxtApp (/home/projects/nuxt-starter-4tlygh/node_modules/nuxt/dist/app/nuxt.mjs:165:13)
at Module.useRuntimeConfig (/home/projects/nuxt-starter-4tlygh/node_modules/nuxt/dist/app/nuxt.mjs:173:10)
at log (/home/projects/nuxt-starter-4tlygh/utils/logger.js:11:40) 10:13:46
at Object.info (/home/projects/nuxt-starter-4tlygh/utils/logger.js:24:5)
at Timeout.eval [as _onTimeout] (/home/projects/nuxt-starter-4tlygh/plugins/01.api.js:12:24)
at listOnTimeout (https://nuxt-starter-4tlygh.w-credentialless.staticblitz.com/blitz.bba8d0a5a025db74852964077975228459d6d20b.js:6:306541)
at processTimers (https://nuxt-starter-4tlygh.w-credentialless.staticblitz.com/blitz.bba8d0a5a025db74852964077975228459d6d20b.js:6:307364)
at https://nuxt-starter-4tlygh.w-credentialless.staticblitz.com/blitz.bba8d0a5a025db74852964077975228459d6d20b.js:15:258211
at https://nuxt-starter-4tlygh.w-credentialless.staticblitz.com/blitz.bba8d0a5a025db74852964077975228459d6d20b.js:15:258522