`).\n5. Ensure the child component (\u003CHeader />) is a standard, non-recursive component.\n6. Deploy the application to Cloudflare Pages.\n\n**Expected Behavior**\n\nThe page should render successfully without errors.\n\n**Actual Behavior**\n\nThe server crashes, and the deployment log shows a Maximum call stack size exceeded error. The stack trace is internal to the Vue/Nitro renderer and does not point to any specific application code:\n\n```\nRangeError: Maximum call stack size exceeded\n at Ke (chunks/build/server.mjs:1:1657235)\n at Pn (chunks/build/server.mjs:1:1664618)\n at xo._init (chunks/build/server.mjs:1:1676941)\n at new i2 (chunks/build/server.mjs:1:1683288)\n at Dt (chunks/routes/renderer.mjs:1:48524)\n ...\n```\n\n### Describe the bug\n\nWhen migrating a large-scale, legacy Nuxt 2 application to Nuxt Bridge for deployment on Cloudflare Pages, the build process completes successfully, but the deployed application crashes on any server-side rendered route.\n\nThe error is a `Maximum call stack size exceeded`, which points to an infinite loop. After an exhaustive debugging process, the evidence strongly suggests the bug is not in the application code itself but in the Nuxt Bridge component auto-discovery/registration system when interacting with the Nitro server in a Cloudflare Pages environment.\n\nThe crash is triggered by the mere presence of any component within the default layout, even if that component is simple and contains no recursive logic.\n\n\n### Additional context\n\n**Debugging Steps and Analysis**\n\nWe have exhaustively ruled out all common causes of this error within the application code:\n\n- **Build Errors**: Initial \"heap out of memory\" errors during the build were resolved by increasing the Node memory limit (`NODE_OPTIONS=--max-old-space-size=8192`) and providing an explicit components: { `dirs: ['~/components'`] } configuration. The build now completes successfully.\n\n**Application Logic:**\n\n1. **Test A (Success)**: Forcing a page to use a completely blank layout (layout: 'empty') resolves the crash. This proves the issue originates from layouts/default.vue or its dependencies.\n2. **Test B (Success)**: Commenting out all child components (\u003CHeader>, \u003CFooter>, etc.) from the layouts/default.vue template resolves the crash.\n3. **Test C (Failure**): Uncommenting any single one of those components (e.g., only enabling \u003CHeader />) causes the crash to return. This was tested for every component in the layout.\n4. **Test D (Failure)**: Disabling all server-side plugins and modules in nuxt.config.js did not fix the crash.\n\n**Conclusion**:\nThe crash is not caused by the specific logic within any single component (like `\u003CHeader>` or `\u003CFooter>`). Instead, the crash is triggered by the act of initializing any component within the layout during a server-side render.\n\n### Logs\n\n```shell-script\n\n```",[3040],{"name":3041,"color":3042},"pending triage","E99695",32796,"Nuxt Bridge SSR Crash: Maximum call stack size exceeded on Cloudflare Pages with Component Auto-Discovery","2025-07-28T16:55:10Z","https://github.com/nuxt/nuxt/issues/32796",0.70657486,{"description":3049,"labels":3050,"number":3054,"owner":3030,"repository":3030,"state":3055,"title":3056,"updated_at":3057,"url":3058,"score":3059},"\r\n\r\nI got this error when I use `v-for` dynamic components on server side render.\r\nIf data less then 10 records it's work fine and use client render it's work too.\r\nError only use server side render. How do I solve?\r\n\r\n` \u003Ccomponent v-for=\"element in dataItems\" :is=\"element.name\" :key=\"element.id\">\u003C/component>`\r\nhere is my json data \r\n```\r\n[\r\n {\r\n \"id\": \"1\",\r\n \"name\": \"Layout12\"\r\n },\r\n {\r\n \"id\": \"2\",\r\n \"name\": \"Layout12\"\r\n },\r\n {\r\n \"id\": \"3\",\r\n \"name\": \"Layout12\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"4\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"5\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"6\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"7\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"8\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"9\"\r\n },\r\n {\r\n \"name\": \"Layout12\",\r\n \"id\": \"10\"\r\n }\r\n]\r\n```\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This question is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c495\">#c495\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3051],{"name":3052,"color":3053},"2.x","d4c5f9",568,"closed","Server render error RangeError: Maximum call stack size exceeded","2023-01-18T15:39:31Z","https://github.com/nuxt/nuxt/issues/568",0.4679567,{"description":3061,"labels":3062,"number":3067,"owner":3030,"repository":3030,"state":3055,"title":3068,"updated_at":3069,"url":3070,"score":3071},"I have tested a lot.\r\n\r\nwhen I use **asyncData** in my page,visit the page about 20k times (render in SSR).\r\n\r\n\r\nthe error blow occurred, please help.\r\n\r\n\r\n\r\n\r\nThe source code is here\r\n\r\n\r\n\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This bug report is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c1201\">#c1201\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3063,3066],{"name":3064,"color":3065},"available soon","6de8b0",{"name":3052,"color":3053},1354,"RangeError: Maximum call stack size exceeded","2023-01-18T15:41:42Z","https://github.com/nuxt/nuxt/issues/1354",0.6655709,{"labels":3073,"number":3076,"owner":3030,"repository":3030,"state":3055,"title":3077,"updated_at":3078,"url":3079,"score":3080},[3074,3075],{"name":3041,"color":3042},{"name":3052,"color":3053},4960,"Dynamic component server side rendering doesn't work when used inside v-if and v-else","2024-06-20T14:03:01Z","https://github.com/nuxt/nuxt/issues/4960",0.6766184,{"labels":3082,"number":3087,"owner":3030,"repository":3030,"state":3055,"title":3068,"updated_at":3088,"url":3089,"score":3090},[3083,3084],{"name":3052,"color":3053},{"name":3085,"color":3086},"needs reproduction","FBCA04",9511,"2023-01-21T23:09:47Z","https://github.com/nuxt/nuxt/issues/9511",0.67943066,{"description":3092,"labels":3093,"number":3095,"owner":3030,"repository":3030,"state":3055,"title":3096,"updated_at":3097,"url":3098,"score":3099},"### Environment\n\n- Operating System: Darwin\r\n- Node Version: v20.11.1\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: pnpm@8.15.4\r\n- Builder: -\r\n- User Config: vite, css, modules, $development, srcDir, serverDir, colorMode, app, runtimeConfig, components, compatibilityDate, hooks\r\n- Runtime Modules: @nuxt/image@1.7.0, @nuxt/eslint@0.3.13, @nuxtjs/tailwindcss@6.12.1, @nuxtjs/color-mode@3.4.2, nuxt-icon@0.6.10, @vueuse/nuxt@10.11.0, @nuxtjs/device@3.1.1, vue3-carousel-nuxt@1.1.2\r\n- Build Modules: -\r\n\n\n### Reproduction\n\n_/src/pages/news/[id].vue_\r\n```vue\r\n\u003Cscript setup lang=\"ts\">\r\nimport type { ArticleType } from '@/types/models'\r\n\r\nconst id = useRouteParam\u003Cstring>('id')\r\n\r\n// fetch returns an Article object with large text!!\r\nconst { data } = await useFetch\u003CArticleType>(`/api/news/${id.value}`)\r\nif (!data.value) {\r\n throw createError({ statusCode: 404, statusMessage: 'Page Not Found' })\r\n}\r\n\u003C/script>\r\n\r\n\u003Ctemplate>\r\n \u003CContentView :text=\"data.text\" /> \u003C!-- it's server component: ContentView.server.vue -->\r\n\u003C/template>\r\n\r\n```\r\n\r\n_/src/components/content/ContentView.server.vue_\r\n\r\n```vue\r\n\u003Cscript setup lang=\"ts\">\r\ndefineProps\u003C{ text: string }>()\r\n\u003C/script>\r\n\r\n\u003Ctemplate>\r\n \u003Carticle class=\"content\">\r\n \u003Cdiv v-html=\"text\">\u003C/div>\r\n \u003C/article>\r\n\u003C/template>\r\n\r\n```\r\n\r\n_server side: /server/api/news/[id].get.ts_\r\n\r\n```ts\r\nexport default defineEventHandler(async (event) => {\r\n try {\r\n return {\r\n text: 'Lorem ipsum dolor sit amet......', // For simple reproduce, it's enough to pass a text of approximately 50k chars. \r\n // ....other fields\r\n }\r\n } catch (error) {\r\n throw createError({ statusCode: 404, message: 'Material not found' })\r\n }\r\n})\r\n\r\n```\n\n### Describe the bug\n\nI've a ContentView component that accepts article content from the API server, which I pass to v-html. \r\nMy task is to render ContentView **ONLY** on the server side. For this, I added the **server** suffix to component (ContentView.**server**.vue).\r\n\r\nbut the problem is that a lot of data is passed to the ContentView component into props. \r\n```vue\r\n\u003CContentView v-bind=\"data\" /> \u003C!-- DATA with a large amount of data information -->\r\n```\r\nand that's why I get error \"431 Request Header Fields Too Large\".\r\n\r\nMy browser request:\r\n```\r\nRequest URL: http://localhost:3000/__nuxt_island/ContentView_KqN6hVg9ec.json?props=%7B%22text%22:%22Lorem+ipsum+dolor+sit+amet...... 50k chars\r\nRequest Method: GET\r\nStatus Code: 431 Request Header Fields Too Large\r\nRemote Address: [::1]:3000\r\n```\r\n\r\nThis probably not be a bug, but I need to do the component render only on the server side. Please any solutions.\r\n\r\nOr, so that the request to ISLAND is not GET.\r\n\r\nThank you!\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3094],{"name":3041,"color":3042},28567,"Nuxt3 .server (island) components fail to render \"Request Header Fields Too Large\" if you pass a lot of data to props","2024-08-16T14:11:40Z","https://github.com/nuxt/nuxt/issues/28567",0.6941112,{"description":3101,"labels":3102,"number":3108,"owner":3030,"repository":3030,"state":3055,"title":3068,"updated_at":3109,"url":3110,"score":3111},"### Environment\n\nDev\n\n### Reproduction\n\nNo reproduction.\n\n### Describe the bug\n\nGetting the below error after updating my nuxt version from ('^3.5.1') to ('^3.11.1).\r\nand it will break the page and show \"This page isn't working\", after reloding it work's fine.\r\n\r\nError is here.\r\n```\r\nbrowser.mjs?v=fd19e36f:44 Uncaught (in promise) RangeError: Maximum call stack size exceeded\r\n at BrowserReporter.log (browser.mjs?v=fd19e36f:44:7)\r\n at Consola._log (core.mjs?v=fd19e36f:381:16)\r\n at resolveLog (core.mjs?v=fd19e36f:349:14)\r\n at Consola._logFn (core.mjs?v=fd19e36f:377:5)\r\n at core.mjs?v=fd19e36f:306:19\r\n at BrowserReporter.log (browser.mjs?v=fd19e36f:44:7)\r\n at Consola._log (core.mjs?v=fd19e36f:381:16)\r\n at resolveLog (core.mjs?v=fd19e36f:349:14)\r\n at Consola._logFn (core.mjs?v=fd19e36f:377:5)\r\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3103,3106,3107],{"name":3104,"color":3105},"3.x","29bc7f",{"name":3041,"color":3042},{"name":3085,"color":3086},26605,"2024-04-17T15:24:02Z","https://github.com/nuxt/nuxt/issues/26605",0.6945651,{"description":3113,"labels":3114,"number":3119,"owner":3030,"repository":3030,"state":3055,"title":3120,"updated_at":3121,"url":3122,"score":3123},"### Version\r\n\r\n[v1.4.2](https://github.com/nuxt.js/releases/tag/v1.4.2)\r\n\r\n### Reproduction link\r\n\r\n[https://github.com/uptownhr/nuxt-issue-3914](https://github.com/uptownhr/nuxt-issue-3914)\r\n\r\n### Steps to reproduce\r\n\r\n1. clone repo\r\n2. yarn\r\n3. yarn build\r\n4. yarn start\r\n5. ab -c 2 -n 20000\r\n\r\nThe STR is not straight forward as I'm only able to reproduce this on a live project I have and running `ab -c 2 -n 20000`. It's only once the server has been hit around 10k times where the bug `Maximum Stack` on `VueComponent.mergeDataFn` is triggered. \r\n\r\nOnce this error is triggered, I can see on the log `statusCode: 500`, however the web server still responds with 200 and shows an error page.\r\n\r\n\r\n```\r\n{ RangeError: Maximum call stack size exceeded\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1164:34)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51)\r\nwww_1 | at VueComponent.mergedDataFn (/www/node_modules/vue/dist/vue.runtime.common.js:1166:51) statusCode: 500, name: 'RangeError' }\r\n```\r\n\r\n\r\n### What is expected ?\r\n\r\nWhen the SSR rendering crashes, the web response should also be a 500. \r\n\r\nSecond thing that should probably is happen is also kill the server, so the process manager has a chance to reboot the server.\r\n\r\n### What is actually happening?\r\n\r\nThe server errors and still returns a 200. This causes error monitors not be able to alert. Also because it catches the crash and not actually crash, any process managers listening to restart the server cannot. \r\n\r\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\r\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This bug report is available on \u003Ca href=\"https://cmty.app/nuxt\">Nuxt\u003C/a> community (\u003Ca href=\"https://cmty.app/nuxt/nuxt.js/issues/c7771\">#c7771\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3115,3117,3118],{"name":3116,"color":3028},"stale",{"name":3041,"color":3042},{"name":3052,"color":3053},3914,"Nuxt SSR crashes with 200 response code","2023-01-22T15:30:05Z","https://github.com/nuxt/nuxt/issues/3914",0.69653004,{"description":3125,"labels":3126,"number":3129,"owner":3030,"repository":3030,"state":3055,"title":3130,"updated_at":3131,"url":3132,"score":3133},"### Version\n\n[v2.6.2](https://github.com/nuxt.js/releases/tag/v2.6.2)\n\n### Reproduction link\n\n[https://github.com/nuxt/devalue](https://github.com/nuxt/devalue)\n\n### Steps to reproduce\n\nThe error pops out randomly when calling devalue on an Axios error object. I noticed that the error pop out more frequently when the nuxt dev server was launched a while ago and not when is freshly launched, but can't find a way to make it happen everytime.\n\nThe error comes out even if the axiosError is the simplest error object returned in requests that produces an early NetworkError during OPTIONS pre-flight requests.\n\nThe line causing recursion is this\n\n```\nreturn \"{\" + Object.keys(thing).map(function (key) { return safeKey(key) + \":\" + stringify(thing[key]); }).join(',') + \"}\";\n```\n\n\n### What is expected ?\n\ndevalue() returns a stringified object representation\n\n### What is actually happening?\n\ndevalue() raises a \"RangeError: Maximum call stack size exceeded\"\n\n\n\n\u003C!--cmty-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This bug report is available on \u003Ca href=\"https://cmty.app/nuxt\">Nuxt\u003C/a> community (\u003Ca href=\"https://cmty.app/nuxt/nuxt.js/issues/c9066\">#c9066\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3127,3128],{"name":3041,"color":3042},{"name":3052,"color":3053},5551,"devalue randomly produces \"RangeError: Maximum call stack size exceeded\"","2023-01-22T15:33:04Z","https://github.com/nuxt/nuxt/issues/5551",0.7040036,["Reactive",3135],{},["Set"],["ShallowReactive",3138],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fDaBk2NJAxjw3O232fbU4H-q5lif5vGTDDK_sUAEddb8":-1},"/nuxt/test-utils/568"]