vaadin / flow

Vaadin Flow is a Java framework binding Vaadin web components to Java. This is part of Vaadin 10+.
Apache License 2.0
608 stars 166 forks source link

Navigating from view with Pro component is causing exception #19672

Open MarcinVaadin opened 2 months ago

MarcinVaadin commented 2 months ago

Description of the bug

Navigating from view with Pro components when not having license always end up with exception:

Unexpected Application Error!
Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
Error: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
    at removeChild (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:8456:26)
    at commitDeletionEffectsOnFiber (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17510:21)
    at recursivelyTraverseDeletionEffects (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17486:13)
    at commitDeletionEffectsOnFiber (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17577:15)
    at recursivelyTraverseDeletionEffects (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17486:13)
    at commitDeletionEffectsOnFiber (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17577:15)
    at commitDeletionEffects (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17477:13)
    at recursivelyTraverseMutationEffects (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17674:17)
    at commitMutationEffectsOnFiber (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17896:15)
    at recursivelyTraverseMutationEffects (http://localhost:56541/VAADIN/@fs/Users/vaadin/Downloads/my-app%204/node_modules/.vite/deps/chunk-E4UNORPT.js?v=da2a139c:17685:15)
💿 Hey developer 👋

You can provide a way better UX than this when your app throws errors by providing your own ErrorBoundary or errorElement prop on your route.

Expected behavior

Should not be any error

Minimal reproducible example

  1. Create project with 2 hilla views on start.v.c.
  2. Add Pro component to one view (like <CookieConsent />).
  3. Open app and go to that view. No license found. [Go here to start a trial or retrieve your license.] will be displayed.
  4. Go to other view -> Exception

Versions

Hilla: 24.4.2 Flow: 24.4.2 Vaadin: 24.4.4 Copilot: 24.4.3 Copilot IDE Plugin: 1.0-SNAPSHOT-intellij Java: Oracle Corporation 22.0.1 Java Hotswap: false Frontend Hotswap: Enabled, using Vite OS: aarch64 Mac OS X 14.5 Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

caalador commented 1 month ago

Is this still a problem? Couldn't replicate using Vaadin 24.4.7 Got no exceptions on navigation away from the no license view.

MarcinVaadin commented 1 month ago

Still reproducible, follow steps above. Retested on:

Hilla: 24.4.4
Flow: 24.4.4
Vaadin: 24.4.7
Copilot: 24.4.8
Copilot IDE Plugin: 1.0-SNAPSHOT-intellij
Java: Oracle Corporation 22.0.1
Java Hotswap: false
Frontend Hotswap: Enabled, using Vite
OS: aarch64 Mac OS X 14.5
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36