Skip to content
Back

Appwrite loading issue with Nuxt UI

  • 0
  • 2
  • Self Hosted
  • Sites
  • Web
  • Cloud
MYND
6 Jan, 2026, 04:26

For some reason when I add nuxt ui to my nuxt 4 project, appwrite will build the project but the project website will load indefinitely. Without adding Nuxt UI, a Nuxt 4 project builds fine. I have tested this with the npm create nuxt@latest -- -t github:nuxt-ui-templates/starter project and a regular empty project. I am unsure if this is a nuxt ui/nuxt 4 issue or if I have to change something somewhere in how appwrite builds the page, both for ssr and static.

TL;DR
If using Nuxt 4 + SSR on Appwrite Sites with @nuxt/ui causes HTTP 408 Timeouts due to Appwrite ModClean deleting necessary files, update nuxt.config.ts to include the problematic dependencies in the Nitro config. This will prevent stripping of dependencies, resolving errors and timeouts.
MYND
6 Jan, 2026, 04:37

This builds fine under Netlify

17 Feb, 2026, 21:07

Hi, I'd like to share a possible fix that I found. You may be having the same issue:

Fix: 408 Timeout / SSR + Nuxt UI on Appwrite

If you're deploying Nuxt 4 + SSR to Appwrite Sites and seeing deployment success but runtime crashes, this fix is for you.

The Issue

Enabling @nuxt/ui causes the runtime container (openruntimes/node) to restart indefinitely, leading to HTTP 408 Timeouts.

Symptoms

Build succeeds, but logs show: Error [ERR_MODULE_NOT_FOUND]: ... @iconify/utils/lib/emoji/test/parse.js

Static (nuxt generate) works, but SSR fails specifically when @nuxt/ui is present.

Root Cause: Appwrite ModClean Appwrite’s runtimes use modclean to prune unnecessary files. Because Nitro treats @iconify as an external dependency, required files are not bundled into .output/server. Appwrite then deletes these "unnecessary" files, causing the Node process to crash when it tries to resolve them at runtime.

The Fix

Force Nitro to inline (bundle) the problematic dependencies so they aren't stripped away.

Update your nuxt.config.ts:

TypeScript
TypeScript
export default defineNuxtConfig({
  modules: ['@nuxt/ui'], // and others
  ssr: true,
  compatibilityDate: '2025-01-15',
  
  nitro: {
    preset: 'node-server',
    externals: {
      inline: ['@nuxt/ui', '@iconify/utils', '@iconify/types']
    }
  }

Why this works

By adding these to nitro.externals.inline, you force Nitro to:

  • Bundle these packages directly into the server output.
  • Prevent Appwrite’s cleanup process from stripping "hidden" dependencies.

Resolve the ERR_MODULE_NOT_FOUND and the resulting 408 timeout.

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more