sveltejs / svelte

Cybernetically enhanced web apps
https://svelte.dev
MIT License
79.17k stars 4.16k forks source link

Broken page with Svelte 5: uncaught `effect_update_depth_exceeded` #13768

Open probablykasper opened 2 days ago

probablykasper commented 2 days ago

Describe the bug

Upgrading from Svelte 5 (without making any code changes) resulted in an infinite effect_update_depth_exceeded error

Reproduction

https://github.com/probablykasper/svelte-5-kit-infinite-effect-bug

Logs

(index):27 Last ten effects were:  (10) [ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ]0: () => {…}length: 0name: "{expression}"arguments: (...)caller: (...)[[FunctionLocation]]: +page.svelte:8[[Prototype]]: ƒ ()[[Scopes]]: Scopes[3]1: () => select.disabled = data().locked2: () => {…}3: () => {…}4: () => {…}5: () => {…}6: () => {…}7: () => select.disabled = data().locked8: () => {…}9: () => {…}length: 10[[Prototype]]: Array(0)
infinite_loop_guard @ chunk-SPZDVXP4.js?v=324564b2:1799
flush_queued_root_effects @ chunk-SPZDVXP4.js?v=324564b2:1817
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1939
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
[...]
await in flush_sync
start @ client.js?v=324564b2:306
(anonymous) @ (index):27
Promise.then
(anonymous) @ (index):26
Show 201 more frames
Show less
chunk-SPZDVXP4.js?v=324564b2:1799 Last ten effects were:  (10) [ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ, ƒ]0: () => {…}1: () => select.disabled = data().locked2: () => {…}3: () => {…}4: () => {…}5: () => {…}6: () => {…}7: () => select.disabled = data().locked8: () => {…}9: () => {…}length: 10[[Prototype]]: Array(0)
infinite_loop_guard @ chunk-SPZDVXP4.js?v=324564b2:1799
flush_queued_root_effects @ chunk-SPZDVXP4.js?v=324564b2:1817
process_deferred @ chunk-SPZDVXP4.js?v=324564b2:1858
Show 3 more frames
Show less
chunk-SPZDVXP4.js?v=324564b2:142 Uncaught 
effect_update_depth_exceeded @ chunk-SPZDVXP4.js?v=324564b2:142
infinite_loop_guard @ chunk-SPZDVXP4.js?v=324564b2:1794
flush_queued_root_effects @ chunk-SPZDVXP4.js?v=324564b2:1817
process_deferred @ chunk-SPZDVXP4.js?v=324564b2:1858
Show 4 more frames
Show less
chunk-SPZDVXP4.js?v=324564b2:142 Uncaught (in promise) 
effect_update_depth_exceeded @ chunk-SPZDVXP4.js?v=324564b2:142
infinite_loop_guard @ chunk-SPZDVXP4.js?v=324564b2:1794
flush_queued_root_effects @ chunk-SPZDVXP4.js?v=324564b2:1817
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1939
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
flush_sync @ chunk-SPZDVXP4.js?v=324564b2:1943
[...]
await in flush_sync
(anonymous) @ (index):27
Promise.then
(anonymous) @ (index):26
Show 200 more frames
Show less

System Info

System:
    OS: macOS 13.6.7
    CPU: (8) x64 Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
    Memory: 2.74 GB / 40.00 GB
    Shell: 3.6.1 - /usr/local/bin/fish
  Binaries:
    Node: 20.15.0 - ~/.local/share/mise/installs/node/20/bin/node
    npm: 10.7.0 - ~/.local/share/mise/installs/node/20/bin/npm
  Browsers:
    Brave Browser: 127.1.68.141
    Safari: 18.0.1
  npmPackages:
    @sveltejs/adapter-auto: ^3.2.5 => 3.2.5 
    @sveltejs/kit: ^2.7.2 => 2.7.2 
    @sveltejs/vite-plugin-svelte: ^4.0.0 => 4.0.0 
    svelte: ^5.0.3 => 5.0.3 
    vite: ^5.4.9 => 5.4.9

Severity

blocking an upgrade

Additional Information

No response

knd775 commented 19 hours ago

Can confirm. This is also happening to a number of our selects.

Travja commented 1 hour ago

Dependabot upgraded our project from 4.2.19 to 5.0.5 and I'm seeing this issue as well.

knd775 commented 1 hour ago

It only happens when the component isn't in runes mode.