\n\n### Additional context\n\n_No response_",[3159,3160,3161],{"name":3140,"color":3141},{"name":3143,"color":3144},{"name":3146,"color":3147},4744,"Horizontal form","2025-08-15T09:26:47Z","https://github.com/nuxt/ui/issues/4744",0.752232,{"description":3168,"labels":3169,"number":3173,"owner":3149,"repository":3149,"state":3151,"title":3174,"updated_at":3175,"url":3176,"score":3177},"### Environment\n\n- Operating System: `Darwin`\r\n- Node Version: `v20.10.0`\r\n- Nuxt Version: `3.12.3`\r\n- CLI Version: `3.12.0`\r\n- Nitro Version: `2.9.7`\r\n- Package Manager: `npm@10.2.3`\r\n- Builder: `-`\r\n- User Config: `-`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-bf8y4g?file=server%2Fmiddleware%2Fsample.js\n\n### Describe the bug\n\nThe error page that is displayed when there are server errors is not editable and doesn't get replaced by `error.vue`:\r\n\r\n\r\n\n\n### Additional context\n\nThe documentation about [Error Page](https://nuxt.com/docs/getting-started/error-handling#error-page) has been followed but it doesn't seem to apply to the 500 error described\n\n### Logs\n\n_No response_",[3170],{"name":3171,"color":3172},"pending triage","E99695",28226,"Add mechanism to customize Nuxt's default Fallback error pages (for Nitro)","2024-07-20T09:35:08Z","https://github.com/nuxt/nuxt/issues/28226",0.76438314,{"description":3179,"labels":3180,"number":3186,"owner":3149,"repository":3149,"state":3151,"title":3187,"updated_at":3188,"url":3189,"score":3190},"Currently, if something goes wrong for rendering error pages, we do not handle it (as of last RC.8). https://github.com/nuxt/framework/pull/6697 added an SSR error fallback handler to use static js templates from `@nuxt/ui-templates` as fallback.\r\n\r\nBut if an error happens during CSR rendering (shown by `showErrorPage`) there is no fallback error to show but only a console.error that end-users cannot see. \r\n\r\nReproduction: https://stackblitz.com/edit/github-d1bzqy?file=error.vue,app.vue\r\n\r\nWe shall support a _static_ fallback for error handler and allow users to customize it as well.\r\n\r\nThe downside of this is that we are increasing bundle size so have to be careful to make it as minimal as possible as each byte matters!",[3181,3183],{"name":3140,"color":3182},"8DEF37",{"name":3184,"color":3185},"🍰 p2-nice-to-have","0E8A16",14618,"Fallback error handler for CSR error pages","2024-06-30T11:10:23Z","https://github.com/nuxt/nuxt/issues/14618",0.7653188,{"description":3192,"labels":3193,"number":3197,"owner":3149,"repository":3150,"state":3151,"title":3198,"updated_at":3199,"url":3200,"score":3201},"### Description\n\nSomething like this from PrimeVue:\n\nDatepicker + Timepicker\n\u003Cimg width=\"352\" height=\"457\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/f40dbf99-c74a-478b-8f2b-d54efa91e9a9\" />\n\nTime only:\n\u003Cimg width=\"356\" height=\"196\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/306c0931-e800-4a9b-9b92-ad70dc4ffab5\" />\n\n### Additional context\n\n_No response_",[3194,3195,3196],{"name":3140,"color":3141},{"name":3143,"color":3144},{"name":3146,"color":3147},4634,"[Component] Timepicker","2025-07-30T13:51:31Z","https://github.com/nuxt/ui/issues/4634",0.7675009,{"description":3203,"labels":3204,"number":3214,"owner":3149,"repository":3150,"state":3215,"title":3216,"updated_at":3217,"url":3218,"score":3219},"### Description\n\nCurrently, when I use `UAvatar` and the user's photo returns a 404, it generates an `\u003Cimg>` with the broken image icon:\n\n\nIs there a way to make the image that returns 404 display text from the alt instead?\nIn the documentation it says:\n>When no icon or text is provided, the initials of the `alt` prop are used as fallback\n\nCan `alt` also be used as a fallback when the image is broken?\n\n\n\nExample:\n\n",[3205,3208,3209,3212],{"name":3206,"color":3207},"question","d876e3",{"name":3143,"color":3144},{"name":3210,"color":3211},"closed-by-bot","ededed",{"name":3213,"color":3211},"stale",3809,"closed","[UAvatar] If the image does not exist, return text","2025-06-18T09:01:16Z","https://github.com/nuxt/ui/issues/3809",0.695293,{"description":3221,"labels":3222,"number":3226,"owner":3149,"repository":3227,"state":3215,"title":3228,"updated_at":3229,"url":3230,"score":3231},"\n",[3223],{"name":3224,"color":3225},"bug","ff281a",147,"nuxt.com","Fix `UAvatar` component when img does not load","2023-02-15T12:31:48Z","https://github.com/nuxt/nuxt.com/issues/147",0.7142686,{"description":3233,"labels":3234,"number":3226,"owner":3149,"repository":3240,"state":3215,"title":3241,"updated_at":3242,"url":3243,"score":3231},"Since we're using custom keys for TPC users won't be able to provide config as per the docs and all other scripts.\r\n\r\nFor example, the `NUXT_PUBLIC_SCRIPTS_GOOGLE_TAG_MANAGER_ID` key should just work. It doesn't because the key is set to `gtm`\r\n\r\n```ts\r\nexport default defineNuxtConfig({\r\n runtimeConfig: {\r\n public: {\r\n scripts: {\r\n googleTagManager: {\r\n id: '', // NUXT_PUBLIC_SCRIPTS_GOOGLE_TAG_MANAGER_ID\r\n },\r\n },\r\n },\r\n },\r\n})\r\n```",[3235,3237],{"name":3224,"color":3236},"d73a4a",{"name":3238,"color":3239},"pre-announce","c2e0c6","scripts","TPC script runtime config extending is broken","2024-07-15T05:57:06Z","https://github.com/nuxt/scripts/issues/147",{"description":3245,"labels":3246,"number":3257,"owner":3149,"repository":3149,"state":3215,"title":3258,"updated_at":3259,"url":3260,"score":3261},"### Environment\r\n`\u003Cimg src=\"~/assets/image/searchBg.jpg\" alt=\"\"/>`\r\n\r\nchunk-SOI3BFCQ.js?v=091eb3ff:1759 [Vue warn]: Hydration attribute mismatch on \u003Cimg src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\" alt> \r\n - rendered on server: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\"\r\n - expected on client: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632813\"\r\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\r\n You should fix the source of the mismatch. \r\n at \u003CIndex onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C undefined > > \r\n at \u003CAnonymous key=\"/search\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/search?title=dd', hash: '', query: {…}, name: 'search', path: '/search', …} ... > \r\n at \u003CBaseTransition onAfterLeave= [ƒ] mode=\"out-in\" appear=false ... > \r\n at \u003CTransition onAfterLeave= [ƒ] name=\"page\" mode=\"out-in\" > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CDefault ref=Ref\u003C undefined > > \r\n at \u003CLayoutLoader key=\"default\" layoutProps= {ref: RefImpl} name=\"default\" > \r\n at \u003CNuxtLayoutProvider layoutProps= {ref: RefImpl} key=\"default\" name=\"default\" ... > \r\n at \u003CNuxtLayout> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n### Reproduction\r\n\r\nchunk-SOI3BFCQ.js?v=091eb3ff:1759 [Vue warn]: Hydration attribute mismatch on \u003Cimg src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\" alt> \r\n - rendered on server: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\"\r\n - expected on client: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632813\"\r\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\r\n You should fix the source of the mismatch. \r\n at \u003CIndex onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C undefined > > \r\n at \u003CAnonymous key=\"/search\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/search?title=dd', hash: '', query: {…}, name: 'search', path: '/search', …} ... > \r\n at \u003CBaseTransition onAfterLeave= [ƒ] mode=\"out-in\" appear=false ... > \r\n at \u003CTransition onAfterLeave= [ƒ] name=\"page\" mode=\"out-in\" > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CDefault ref=Ref\u003C undefined > > \r\n at \u003CLayoutLoader key=\"default\" layoutProps= {ref: RefImpl} name=\"default\" > \r\n at \u003CNuxtLayoutProvider layoutProps= {ref: RefImpl} key=\"default\" name=\"default\" ... > \r\n at \u003CNuxtLayout> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n### Describe the bug\r\n\r\nchunk-SOI3BFCQ.js?v=091eb3ff:1759 [Vue warn]: Hydration attribute mismatch on \u003Cimg src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\" alt> \r\n - rendered on server: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\"\r\n - expected on client: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632813\"\r\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\r\n You should fix the source of the mismatch. \r\n at \u003CIndex onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C undefined > > \r\n at \u003CAnonymous key=\"/search\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/search?title=dd', hash: '', query: {…}, name: 'search', path: '/search', …} ... > \r\n at \u003CBaseTransition onAfterLeave= [ƒ] mode=\"out-in\" appear=false ... > \r\n at \u003CTransition onAfterLeave= [ƒ] name=\"page\" mode=\"out-in\" > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CDefault ref=Ref\u003C undefined > > \r\n at \u003CLayoutLoader key=\"default\" layoutProps= {ref: RefImpl} name=\"default\" > \r\n at \u003CNuxtLayoutProvider layoutProps= {ref: RefImpl} key=\"default\" name=\"default\" ... > \r\n at \u003CNuxtLayout> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n### Additional context\r\n\r\nchunk-SOI3BFCQ.js?v=091eb3ff:1759 [Vue warn]: Hydration attribute mismatch on \u003Cimg src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\" alt> \r\n - rendered on server: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632814\"\r\n - expected on client: src=\"/_nuxt/assets/image/searchBg.jpg?t=1707570632813\"\r\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\r\n You should fix the source of the mismatch. \r\n at \u003CIndex onVnodeUnmounted=fn\u003ConVnodeUnmounted> ref=Ref\u003C undefined > > \r\n at \u003CAnonymous key=\"/search\" vnode= {__v_isVNode: true, __v_skip: true, type: {…}, props: {…}, key: null, …} route= {fullPath: '/search?title=dd', hash: '', query: {…}, name: 'search', path: '/search', …} ... > \r\n at \u003CBaseTransition onAfterLeave= [ƒ] mode=\"out-in\" appear=false ... > \r\n at \u003CTransition onAfterLeave= [ƒ] name=\"page\" mode=\"out-in\" > \r\n at \u003CRouterView name=undefined route=undefined > \r\n at \u003CNuxtPage> \r\n at \u003CDefault ref=Ref\u003C undefined > > \r\n at \u003CLayoutLoader key=\"default\" layoutProps= {ref: RefImpl} name=\"default\" > \r\n at \u003CNuxtLayoutProvider layoutProps= {ref: RefImpl} key=\"default\" name=\"default\" ... > \r\n at \u003CNuxtLayout> \r\n at \u003CApp key=3 > \r\n at \u003CNuxtRoot>\r\n\r\n### Logs\r\n\r\n_No response_",[3247,3250,3251,3254],{"name":3248,"color":3249},"3.x","29bc7f",{"name":3171,"color":3172},{"name":3252,"color":3253},"needs reproduction","FBCA04",{"name":3255,"color":3256},"⛔️ can be closed","484893",25730,"Image error bug","2024-03-29T20:49:34Z","https://github.com/nuxt/nuxt/issues/25730",0.73884714,{"description":3263,"labels":3264,"number":3268,"owner":3149,"repository":3149,"state":3215,"title":3269,"updated_at":3270,"url":3271,"score":3272},"### Environment\n\n- Operating System: Linux\r\n- Node Version: v20.11.1\r\n- Nuxt Version: 3.10.3\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: yarn@4.2.1\r\n- Builder: -\r\n- User Config: devtools, experimental\r\n- Runtime Modules: -\r\n- Build Modules: -\n\n### Reproduction\n\nhttps://github.com/timhn-bm/nuxt-client-fallback-errors\r\n\r\nI've added 2 pages\r\n- `/works` - not using the `ErrorBoundary` wrapper: it behaves correctly :heavy_check_mark: \r\n- `/bugs` - using the `ErrorBoundary` wrapper: it reproduces the bug :red_circle: \n\n### Describe the bug\n\nWhen building a wrapper around `NuxtClientFallback` and using it is used in multiple places on one page, given that one wrapped component throws an error, then all instances of `NuxtClientFallback` will display the `fallback` slot **only after hydration**\r\n\r\n\r\n\n\n### Additional context\n\nI want to build a wrapper component around `NuxtClientFallback`.\r\n\r\nThe wrapper - let's call it `ErrorBoundary` - can look like this in its simplest form\r\n\r\n```\r\n\u003Ctemplate>\r\n \u003CNuxtClientFallback :keep-fallback=\"true\">\r\n \u003Cslot> \u003C/slot>\r\n\r\n \u003Ctemplate #fallback>\r\n \u003Cdiv style=\"background: red; color: white; padding: 10px\">\r\n \u003Cslot name=\"error\"> \u003C/slot>\r\n \u003C/div>\r\n \u003C/template>\r\n \u003C/NuxtClientFallback>\r\n\u003C/template>\r\n```\r\n\r\nIf I create a page with the following template: `A` `B` and `C` are wrapped by my custom `ErrorBoundary`.\r\n\r\nIf `A` throws an error -> after hydration, then the error slot will also by displayed for `B` and `C`\r\n\r\n\r\n```\r\n\u003Ctemplate>\r\n \u003Cdiv >\r\n \u003CErrorBoundary>\r\n \u003CA /> --> only A will throw an error \r\n \u003Ctemplate #error> an error occurred in A \u003C/template>\r\n \u003C/ErrorBoundary>\r\n\r\n \u003CErrorBoundary>\r\n \u003CB />\r\n \u003Ctemplate #error> an error occurred in B \u003C/template>\r\n \u003C/ErrorBoundary>\r\n\r\n \u003CErrorBoundary>\r\n \u003CC />\r\n \u003Ctemplate #error>\r\n \u003Cdiv>an error occurred in C\u003C/div>\r\n \u003C/template>\r\n \u003C/ErrorBoundary>\r\n \u003C/div>\r\n\u003C/template>\r\n```\r\n\r\nThe very weird this, is that if I use directly `NuxtClientFallback` instead of my wrapper `ErrorBoundary`, then everything behaves as expected.\r\n\r\nThanks for your help in advance !\n\n### Logs\n\n_No response_",[3265,3266],{"name":3224,"color":3236},{"name":3267,"color":3253},"🔨 p3-minor",28344,"NuxtClientFallback renders fallback for all components if one failed, after hydration","2024-12-20T10:13:47Z","https://github.com/nuxt/nuxt/issues/28344",0.750063,["Reactive",3274],{},["Set"],["ShallowReactive",3277],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fuOOUPrfbWuJaSdhp8aGzb4lLvYbbx4m1N7k0FRqqxRI":-1},"/nuxt/ui/4048"]