\n\n### Describe the bug\n\nWhen I add \u003C Link rel=\"alternate\" >, it appears duplicated in the client-side HTML, whereas \u003C Link rel=\"canonical\" > doesn鈥檛 have this issue. Could this be a bug in unhead? Google Search Console is picking up these duplicate alternate tags.\n\n```\n\u003Ctemplate>\n \u003Cdiv>\n \u003CHtml>\n \u003CLink rel=\"alternate\" :href=\"useRoute().fullPath\" />\n\n \u003CLink rel=\"canonical\" :href=\"useRoute().fullPath\" />\n \u003C/Html>\n\n \u003CNuxtLayout>\n \u003CNuxtPage />\n \u003C/NuxtLayout>\n \u003C/div>\n\u003C/template>\n\n```\n\n### Additional context\n\nunhead@2.0.12\n\nNuxt 4 same problem\n\n### Logs\n\n```shell-script\n\n```",[3019],{"name":3020,"color":3021},"馃敤 p3-minor","FBCA04",32670,"nuxt","open","\u003CLink rel=\"alternate\"> duplicated in the client-side HTML","2025-07-21T13:20:24Z","https://github.com/nuxt/nuxt/issues/32670",0.6662727,{"description":3030,"labels":3031,"number":3035,"owner":3023,"repository":3023,"state":3036,"title":3037,"updated_at":3038,"url":3039,"score":3040},"------------------------------\n- Operating System: Darwin\n- Node Version: v22.14.0\n- Nuxt Version: 3.16.2\n- CLI Version: 3.24.1\n- Nitro Version: 2.11.9\n- Package Manager: pnpm@9.6.0\n- Builder: -\n- User Config: compatibilityDate, devtools, app\n- Runtime Modules: -\n- Build Modules: -\n------------------------------\n\n### Reproduction\nIt may not be so obvious in stacklitz, you can try using the repository code to run dev locally\n\nhttps://github.com/smile-alive/br.git\nhttps://stackblitz.com/github/smile-alive/br?file=pages%2Findex.vue\n\n### Describe the bug\n\nWhen using a baseURL `/sylas/` and refreshing an error page, the baseURL gets duplicated in the address bar, creating URLs like:\n\nhttp://localhost:3000/sylas/xxx\nhttp://localhost:3000/sylas/sylas/xxx\nhttp://localhost:3000/sylas/sylas/sylas/xxx\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n WARN [Vue Router warn]: No match found for location with path \"/xx\"\n\n\n WARN [Vue Router warn]: No match found for location with path \"/sylas/xx\"\n\n\n WARN [Vue Router warn]: No match found for location with path \"/sylas/xx\"\n\n\n WARN [Vue Router warn]: No match found for location with path \"/sylas/sylas/xx\"\n```",[3032],{"name":3033,"color":3034},"pending triage","E99695",31800,"closed","BaseURL Duplication on Page Refresh","2025-04-15T09:01:47Z","https://github.com/nuxt/nuxt/issues/31800",0.6136411,{"description":3042,"labels":3043,"number":3048,"owner":3023,"repository":3023,"state":3036,"title":3049,"updated_at":3050,"url":3051,"score":3052},"### Environment\n\n------------------------------\r\n- Operating System: `Darwin`\r\n- Node Version: `v16.14.0`\r\n- Nuxt Version: `3.0.0`\r\n- Nitro Version: `1.0.0`\r\n- Package Manager: `pnpm@7.14.2`\r\n- Builder: `vite`\r\n- User Config: `nitro`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-rpy2he?file=server%2Fapi%2Ftime.ts,app.vue\n\n### Describe the bug\n\n`useFetch` does not really de-duplicate requests, although the data is the same, but the api is called multiple times\r\n\r\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3044,3047],{"name":3045,"color":3046},"3.x","29bc7f",{"name":3033,"color":3034},12381,"useFetch does not de-duplicate requests","2023-01-19T16:23:50Z","https://github.com/nuxt/nuxt/issues/12381",0.62529963,{"description":3054,"labels":3055,"number":3057,"owner":3023,"repository":3023,"state":3036,"title":3058,"updated_at":3059,"url":3060,"score":3061},"### Environment\n\n- Operating System: Linux\r\n- Node Version: v22.4.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: npm@10.8.2\r\n- Builder: -\r\n- User Config: compatibilityDate, devtools\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n\n\n### Reproduction\n\nI've setup a repository with the minimal code here:\r\nhttps://github.com/Jannick94/nuxt-usefetch-dedupe/blob/main/app.vue\r\n\r\nIf StackBlitz is easier, I could also create a reproduction there but I thought it was easier to test in a 'real browser'.\n\n### Describe the bug\n\nI'm currently refactoring my code to correctly use the useFetch composable (according to the amazing video: https://www.youtube.com/watch?v=njsGVmcWviY). I discovered that performing a request to something like an profile/user API endpoint doesn't seem to correctly dedupe the request when this endpoint returns a erroneous status code like 404/401 etc.\r\n\r\nIn the reproduction's `app.vue` file I set up two tests, when using `useFetch` the correct way I see the api request in the browser networks tab. When I perform the request using `useFetch` the wrong way, I dont see the request in the network tab, as expected because it runs on the server and dedupes the response to the client.\r\n\r\nWhenever the request doesn't return a erroneous status code, it does get deduped correctly. I tried setting various `useFetch`/`fetch` options like `retry/retryStatusCodes` but none seem to produce my expected result.\r\n\r\nThanks!\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3056],{"name":3033,"color":3034},28413,"useFetch not deduplicating requests that return an error like 404, 401 etc.","2024-08-08T09:10:02Z","https://github.com/nuxt/nuxt/issues/28413",0.62622607,{"description":3063,"labels":3064,"number":3066,"owner":3023,"repository":3023,"state":3036,"title":3067,"updated_at":3068,"url":3069,"score":3070},"### Environment\n\n- Operating System: Darwin\n- Node Version: v20.14.0\n- Nuxt Version: 3.17.4\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: bun@1.2.9\n- Builder: -\n- User Config: compatibilityDate, devtools, nitro, modules\n- Runtime Modules: nitro-cloudflare-dev@0.2.2\n- Build Modules: -\n\n### Reproduction\n\n- Repo: https://github.com/serhii-chernenko/nuxt-usefetch-caching-issue\n- Demo: https://nuxt-usefetch-caching-issue.nuxt-test.workers.dev\n\n### Describe the bug\n\n# useFetch caching issue\n\nI see that Nuxt `3.17.4` has \"major\" imporvements regarding the usage of `useFetch` and `useAsyncData` composables that has to significantly improve performance by sharing and caching data without a requirement of usage `getCachedData`.\nThe same `key` value is enough.\n\nI wanted to play with this a bit and prepared this demo repo to explain my issue.\n\n- Repo: https://github.com/serhii-chernenko/nuxt-usefetch-caching-issue\n- Demo: https://nuxt-usefetch-caching-issue.nuxt-test.workers.dev\n- Nuxt updates: https://nuxt.com/blog/v3-17\n\n## Issue explanation\n\nI'm expecting that once I used `useFetch` with a key, e.g. `items`, it has to be cached and shared across all pages and components which use fetching for the same `key` (`items`).\n\nI prepared 2 pages:\n- Home page `/`\n- Items page `/items`\n\nThe `pages/items.vue` component includes the `components/Items.vue` component twice.\n\nIn the `Items.vue` I just used `useFetch`:\n```ts\nconst { data: items, error, refresh } = await useFetch(\"/api/items\", {\n key: \"items\",\n default: () => [],\n});\n```\n\nAnd there are 2 issue actually.\n\n### Network request retriggered when page accessed\n\nWhen I go to https://nuxt-usefetch-caching-issue.nuxt-test.workers.dev and then to https://nuxt-usefetch-caching-issue.nuxt-test.workers.dev/items, I see in the Network tab that the request sends again, every time. I kinda didn't expect this, because I guessed that the data has to be provided by cached data already by the `key`.\n\n\n\n**Note here**\nWhile the `Items.vue` inserted to the `pages/items.vue` twice, I added:\n```ts\ndedupe: 'defer`\n```\nto avoid duplicated request at the same time.\n\nIs this an expected behavior? Because I guessed once it's cached, there's no new requests expected until manually refreshed at least.\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3065],{"name":3033,"color":3034},32186,"Network request is sent even with the same `key` for `useFetch`","2025-07-15T15:23:31Z","https://github.com/nuxt/nuxt/issues/32186",0.6285244,{"description":3072,"labels":3073,"number":3075,"owner":3023,"repository":3023,"state":3036,"title":3076,"updated_at":3077,"url":3078,"score":3079},"### Environment\n\n- Operating System: Darwin\n- Node Version: v20.14.0\n- Nuxt Version: 3.16.2\n- CLI Version: 3.24.1\n- Nitro Version: 2.11.8\n- Package Manager: pnpm@9.14.2\n- Builder: -\n- User Config: compatibilityDate, devtools, app\n- Runtime Modules: -\n- Build Modules: -\n\n### Reproduction\n\nThis is [github repo](https://github.com/jxk-developer/nuxt-baseurl-bug) for reproduction, I could't reproduce on stackblitz\n\n### Describe the bug\n\nEach time I reload the page from `index.vue`, the `baseUrl` doubles, such as `localhost:3000/dev/dev` and continues to multiply.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3074],{"name":3033,"color":3034},31709,"Duplication of app.baseURL on Error","2025-04-07T09:11:48Z","https://github.com/nuxt/nuxt/issues/31709",0.62873757,{"labels":3081,"number":3087,"owner":3023,"repository":3023,"state":3036,"title":3088,"updated_at":3089,"url":3090,"score":3091},[3082,3083,3086],{"name":3045,"color":3046},{"name":3084,"color":3085},"bug","d73a4a",{"name":3020,"color":3021},14499,"Duplicate response when calling a composable with useLazyFetch inside","2023-01-19T17:36:12Z","https://github.com/nuxt/nuxt/issues/14499",0.64548296,{"description":3093,"labels":3094,"number":3098,"owner":3023,"repository":3023,"state":3036,"title":3099,"updated_at":3100,"url":3101,"score":3102},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.9.3\r\n- CLI Version: 3.10.0\r\n- Nitro Version: 2.8.1\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: modules\r\n- Runtime Modules: nuxt-swiper@1.2.2, @pinia/nuxt@0.4.11\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-reload-data-with-usefetch-ugvxdv\n\n### Describe the bug\n\nRequests are fired twice on the error page on the server side:\r\n1. Go to the link attached in reproduction section\r\n2. Add something to the url where reproduction is hosted. in order to get 404 page\r\n3. Check the logs \r\n\r\n\n\n### Additional context\n\nReproduces after the build as well\n\n### Logs\n\n_No response_",[3095,3096,3097],{"name":3045,"color":3046},{"name":3084,"color":3085},{"name":3020,"color":3021},25518,"Requests are fired twice on the error page","2024-05-22T14:40:21Z","https://github.com/nuxt/nuxt/issues/25518",0.64813924,{"labels":3104,"number":3109,"owner":3023,"repository":3023,"state":3036,"title":3110,"updated_at":3111,"url":3112,"score":3113},[3105,3106],{"name":3033,"color":3034},{"name":3107,"color":3108},"2.x","d4c5f9",8633,"Duplicate named routes definition","2023-01-22T15:38:40Z","https://github.com/nuxt/nuxt/issues/8633",0.6501568,{"description":3115,"labels":3116,"number":3119,"owner":3023,"repository":3023,"state":3036,"title":3120,"updated_at":3121,"url":3122,"score":3123},"### Version\n\n[v2.5.1](https://github.com/nuxt.js/releases/tag/v2.5.1)\n\n### Reproduction link\n\nNot really needed\n\n### Steps to reproduce\n\n1. Create nuxt app with `npx create-nuxt-app \u003Cproject-name>`\n2. Create module like https://pastebin.com/gSkQUiKg\n3. Run in dev mode\n4. Update `nuxt.config.js`\n\n### What is expected ?\n\nJust call one time the `extendRoutes`\n\n### What is actually happening?\n\nCall multiple time `extendRoutes`\n\n\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\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/c8937\">#c8937\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3117,3118],{"name":3033,"color":3034},{"name":3107,"color":3108},5391,"Duplicate call extendRoutes","2023-01-22T15:33:04Z","https://github.com/nuxt/nuxt/issues/5391",0.6515074,["Reactive",3125],{},["Set"],["ShallowReactive",3128],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fXGQ8k5Z4yyLHYroFdLs463ZBpmor5g5NBg_FCsnnOjg":-1},"/nuxt/nuxt/29575"]