Netlify stuck after building Nuxt 3 site successfully. Never deploys

Deploying new versions of my Nuxt 3 site (static generation) worked fine up until this morning. I’ve got no clue what changed besides the fact that I pushed a MINOR tweak to the main branch: adding a devdependency for Nuxt dev tools.

All builds that I try seem to just stop after building, never continuing to deployment… I’ve tried changing up dependencies, npm/node versions etc. Nothing get the build to continue to deployment. I’ve given it a lot of time but it just keeps showing a ‘building’ state.

Site name: suitsatsea-dev-new.netlify.app

Build logs:

1:34:56 PM: Netlify Build                                                 
1:34:56 PM: ────────────────────────────────────────────────────────────────
1:34:56 PM: ​
1:34:56 PM: ❯ Version
1:34:56 PM:   @netlify/build 29.32.0
1:34:56 PM: ​
1:34:56 PM: ❯ Flags
1:34:56 PM:   baseRelDir: true
1:34:56 PM:   buildId: 65a131d35c4b9900084800b9
1:34:56 PM:   deployId: 65a131d35c4b9900084800bb
1:34:56 PM: ​
1:34:56 PM: ❯ Current directory
1:34:56 PM:   /opt/build/repo
1:34:56 PM: ​
1:34:56 PM: ❯ Config file
1:34:56 PM:   No config file was defined: using default values.
1:34:56 PM: ​
1:34:56 PM: ❯ Context
1:34:56 PM:   production
1:34:56 PM: ​
1:34:56 PM: Build command from Netlify app                                
1:34:56 PM: ────────────────────────────────────────────────────────────────
1:34:56 PM: ​
1:34:56 PM: $ npm run generate
1:34:56 PM: > generate
1:34:56 PM: > nuxt generate
1:34:56 PM: [log] Nuxt 3.9.1 with Nitro 2.8.1
1:34:57 PM: [info] Using Nitro server preset: `static`
1:34:58 PM: [warn] Using `vite.config.ts` is not supported together with Nuxt. Use `options.vite` instead. You can read more in `https://nuxt.com/docs/api/nuxt-config#vite`.
1:34:59 PM: [info] Building client...
1:34:59 PM: [info] vite v5.0.11 building for production...
1:34:59 PM: [info] transforming...
1:35:02 PM: [info] ✓ 343 modules transformed.
1:35:02 PM: Inspect report generated at /opt/build/repo/.nuxt/analyze/.vite-inspect
1:35:02 PM: [info] rendering chunks...
1:35:02 PM: [info] computing gzip size...
1:35:02 PM: [info] .nuxt/dist/client/manifest.json                                                              20.35 kB │ gzip:  2.48 kB
1:35:02 PM: [info] .nuxt/dist/client/_nuxt/ElegantIcons.zeGTO88q.ttf                                            59.39 kB
1:35:02 PM: [info] .nuxt/dist/client/_nuxt/ElegantIcons.wHCqEXpT.eot                                            59.57 kB
1:35:02 PM: [info] .nuxt/dist/client/_nuxt/ElegantIcons.85zqE4Zl.woff                                           63.66 
// skipping a bunch of stuff here to not override character limit of a post here.
                                           43.50 kB │ map:  55.65 kB
1:35:05 PM: [info] .nuxt/dist/server/server.mjs                                                                77.50 kB │ map: 166.93 kB
1:35:05 PM: [info] ✓ built in 2.47s
1:35:05 PM: [success] Server built in 2475ms
1:35:05 PM: [info] [nitro] Initializing prerenderer
1:35:07 PM: [info] [nitro] Prerendering 10 initial routes with crawler
1:35:07 PM: [log] [nitro]   ├─ /__sitemap__/style.xsl (4ms)
1:35:07 PM: [log] [nitro]   ├─ /200.html (31ms)
1:35:07 PM: [log] [nitro]   ├─ /404.html (31ms)
1:35:08 PM: [log] [nitro]   ├─ /trouwpak/prijzen-backup (1285ms)
1:35:08 PM: [log] [nitro]   ├─ /trouwpak/prijzen-backup/_payload.json (14ms)
1:35:09 PM: [log] [nitro]   ├─ /contact (2293ms)
1:35:09 PM: [log] [nitro]   ├─ /reviews (2304ms)
1:35:09 PM: [log] [nitro]   ├─ /contact/_payload.json (0ms)
1:35:09 PM: [log] [nitro]   ├─ /trouwpak/faq (2314ms)
1:35:09 PM: [log] [nitro]   ├─ /reviews/_payload.json (2ms)
1:35:09 PM: [log] [nitro]   ├─ /trouwpak/faq/_payload.json (2ms)
1:35:10 PM: [log] [nitro]   ├─ /trouwpak/prijzen (3292ms)
1:35:10 PM: [log] [nitro]   ├─ /trouwpak/prijzen/_payload.json (0ms)
1:35:10 PM: [log] [nitro]   ├─ / (3307ms)
1:35:10 PM: [log] [nitro]   ├─ /trouwpak/bookmarks (3310ms)
1:35:10 PM: [log] [nitro]   ├─ /_payload.json (1ms)
1:35:10 PM: [log] [nitro]   ├─ /trouwpak/bookmarks/_payload.json (1ms)
1:35:17 PM: [log] [nitro]   ├─ /trouwpak/peaky-blinders-trouwpak (9188ms)
1:35:17 PM: [log] [nitro]   ├─ /trouwpak/peaky-blinders-trouwpak/_payload.json (1ms)
1:35:18 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-strik (10201ms)
1:35:18 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-strik/_payload.json (0ms)
1:35:20 PM: [log] [nitro]   ├─ /trouwpak (12218ms)
1:35:20 PM: [log] [nitro]   ├─ /trouwpak/_payload.json (3ms)
1:35:21 PM: [log] [nitro]   ├─ /trouwpak/groen-trouwpak (13215ms)
1:35:21 PM: [log] [nitro]   ├─ /trouwpak/italiaans-trouwpak (13210ms)
1:35:21 PM: [log] [nitro]   ├─ /trouwpak/groen-trouwpak/_payload.json (2ms)
1:35:21 PM: [log] [nitro]   ├─ /trouwpak/italiaans-trouwpak/_payload.json (2ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/grijs-trouwpak (14226ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/bruin-trouwpak (14228ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/rood-trouwpak (14233ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/paars-trouwpak (14229ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/blauw-trouwpak (14235ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/grijs-trouwpak/_payload.json (5ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/bruin-trouwpak/_payload.json (5ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/rood-trouwpak/_payload.json (1ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/blauw-trouwpak/_payload.json (2ms)
1:35:22 PM: [log] [nitro]   ├─ /trouwpak/paars-trouwpak/_payload.json (2ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/vintage-trouwpak (15214ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/casual-trouwpak-man (15217ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-bretels (15218ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/strand-trouwpak (15221ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/wit-trouwpak (15224ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/casual-trouwpak-man/_payload.json (5ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/vintage-trouwpak/_payload.json (5ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-bretels/_payload.json (10ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/strand-trouwpak/_payload.json (7ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak/wit-trouwpak/_payload.json (3ms)
1:35:23 PM: [log] [nitro]   ├─ /casual-trouwpak-man (53ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak-korte-broek (52ms)
1:35:23 PM: [log] [nitro]   ├─ /casual-trouwpak-man/_payload.json (5ms)
1:35:23 PM: [log] [nitro]   ├─ /trouwpak-korte-broek/_payload.json (1ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-ruit (16211ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/denim-trouwpak (16213ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-print (16212ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-korte-broek (16217ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-sneakers (16218ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-ruit/_payload.json (7ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/denim-trouwpak/_payload.json (5ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-korte-broek/_payload.json (5ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-sneakers/_payload.json (2ms)
1:35:24 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-print/_payload.json (5ms)
1:35:24 PM: [log] [nitro]   ├─ /whatsapp (1026ms)
1:35:24 PM: [log] [nitro]   ├─ /whatsapp/_payload.json (0ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/grote-maten-trouwpak (17194ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/linnen-trouwpak (17198ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/grote-maten-trouwpak/_payload.json (0ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/linnen-trouwpak/_payload.json (3ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/strand-trouwpak/ (1011ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/linnen-trouwpak/ (2041ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/ (1053ms)
1:35:25 PM: [log] [nitro]   ├─ /trouwpak/trouwpak-korte-broek/ (2051ms)
1:35:25 PM: [log] [nitro]   ├─ /reviews/ (162ms)
1:35:25 PM: [log] [nitro]   └─ /sitemap.xml (9ms)
1:35:25 PM: [success] [nitro] Generated public dist
1:35:25 PM: [success] [nitro] You can preview this build using `npx serve .output/static`
1:35:25 PM: [success] You can now deploy `dist` to any static hosting!

I’m hoping someone can help me out since I don’t feel like having to tell my client that ‘site updates’ just stopped working for some reason…

Kind regards

Your deploys appear to be successful. Have you resolved this?

I have the same issue. Did you solve it? If so please tell me how :wink:

No I have not resolved it… I spent quite a bit of time trying to revert the entire project and all dependencies to older versions. Then made sure i’m using the oldest build settings in Netlify, and now it works…

This doesn’t feel very future proof though. When taking a look, please look at the deploys that didn’t work.