White screen after upgrading Vaadin from 14 to 24 – how to troubleshoot?

I upgraded my Vaadin project from 14 to 24 and now I get a white screen in the browser. Not sure how to troubleshoot.
Browser console shows:

Failed to load resource: the server responded with a status of 404 ()
warning: generated-flow-imports-TLHnrIlU.js:3151 WARNING: Since Vaadin 23.3, "@vaadin/vaadin-overlay" is deprecated. Use "@vaadin/overlay" instead.
login:7 Uncaught (in promise) NotSupportedError: Failed to execute 'define' on 'CustomElementRegistry': the name "vaadin-text-field" has already been used with this registry

route related msg on IDE console:

INFO  DevModeHandlerManagerImpl - Application running at http://localhost:8080/app/
DEBUG VaadinServletContextInitializer$ClassPathScanner - Identified candidate component class: URL [jar:file:/path/to/flow-server-24.9.5.jar!/com/vaadin/flow/router/InternalServerError.class]
DEBUG VaadinServletContextInitializer$ClassPathScanner - Identified candidate component class: URL [jar:file:/path/to/flow-server-24.9.5.jar!/com/vaadin/flow/router/RouteAccessDeniedError.class]
DEBUG VaadinServletContextInitializer$ClassPathScanner - Identified candidate component class: URL [jar:file:/path/to/flow-server-24.9.5.jar!/com/vaadin/flow/router/RouteNotFoundError.class]
DEBUG VaadinServletContextInitializer$ClassPathScanner - Identified candidate component class: URL [jar:file:/path/to/flow-server-24.9.5.jar!/com/vaadin/flow/router/HasErrorParameter.class]
DEBUG VaadinServletContextInitializer - Search for error navigation targets took 402 ms
DEBUG VaadinServletContextInitializer - Annotation validation took 208 ms
DEBUG VaadinServletContextInitializer - WebComponent init took 198 ms
DEBUG VaadinServletContextInitializer - Total time for Vaadin Servlet Context Init took 1253 ms
INFO  DefaultDeploymentConfiguration - Vaadin is running in DEVELOPMENT mode - do not use for production deployments.
INFO  SpringInstantiator - The number of beans implementing 'I18NProvider' is 0. Cannot use Spring beans for I18N, falling back to the default behavior
DEBUG PushRequestHandler - Using pre-initialized Atmosphere for servlet springServlet
DEBUG VaadinServletService - Using 'com.vaadin.flow.server.communication.IndexHtmlRequestHandler' in client mode bootstrapping
DEBUG EndpointRegistry - Registered endpoint 'signalshandler' with class 'class com.vaadin.hilla.signals.handler.SignalsHandler'
DEBUG RouteUnifyingServiceInitListener - deploymentConfiguration.isReactEnabled() = true
DEBUG RouteUnifyingServiceInitListener - DEVELOPMENT mode: Registered RouteUnifyingIndexHtmlRequestListener.
DEBUG MenuRegistry - No file-routes.json found under 'frontend/generated' directory. Skipping client route registration.
DEBUG EndpointController - Hilla version determined by Platform.getHillaVersion(): 24.9.5
DEBUG FrontendUtils - Auto-detected client-side router to use: react-router
DEBUG VaadinService - The application has the following routes:
DEBUG VaadinService - RouteData{parentLayout=null, url='', parameters={}, navigationTarget=class MainView, routeAliases=[], menuData=null}'
DEBUG VaadinService - RouteData{parentLayout=class MainView, url='admin', parameters={}, navigationTarget=class AdminView, routeAliases=[], menuData=null}'
DEBUG VaadinService - RouteData{parentLayout=class MainView, url='home', parameters={}, navigationTarget=class HomeView, routeAliases=[], menuData=null}'
DEBUG VaadinService - RouteData{parentLayout=null, url='login', parameters={}, navigationTarget=class LoginView, routeAliases=[], menuData=null}'
...
Dec 09, 2025 2:03:29 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Dec 09, 2025 2:03:29 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [90181] milliseconds
Dec 09, 2025 2:03:29 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring DispatcherServlet 'dispatcherServlet'
INFO  DispatcherServlet - Initializing Servlet 'dispatcherServlet'
INFO  DispatcherServlet - Completed initialization in 3 ms
DEBUG DebugWindowConnection - Class org.hotswap.agent.plugin.vaadin.VaadinIntegration not found, excluding HOTSWAP_AGENT
DEBUG DebugWindowConnection - Class org.zeroturnaround.jrebel.vaadin.JRebelInitializer not found, excluding JREBEL
DEBUG DebugWindowConnection - Class org.springframework.boot.devtools.livereload.LiveReloadServer not found, excluding SPRING_BOOT_DEVTOOLS
DEBUG MenuRegistry - No file-routes.json found under 'frontend/generated' directory. Skipping client route registration.
DEBUG ServerAndClientViewsProvider - Exposing server-side views to the client based on user configuration

It’s a Flow-only project.
Could someone pinpoint where I should look? I cannot tell what the issue is from these logs.

pom file:

<properties>
        <java.version>17</java.version>
        <vaadin.version>24.9.5</vaadin.version>
        <jakarta.mail.version>1.4.7</jakarta.mail.version>
        <checkstyle.version>8.10</checkstyle.version>
        <jsch.version>0.1.54</jsch.version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.7</version>
    </parent>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-bom</artifactId>
                <version>${vaadin.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <!-- Replace artifactId with vaadin-core to use only free components -->
            <artifactId>vaadin-core</artifactId>
            <exclusions>
                <!-- Webjars are only needed when running in Vaadin 13 compatibility mode -->
                <exclusion>
                    <groupId>com.vaadin.webjar</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.insites</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.polymer</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.polymerelements</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.vaadin</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.webcomponents</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-spring-boot-starter</artifactId>
            <exclusions>
                <!-- Excluding so that webjars are not included. -->
                <!--<exclusion>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-core</artifactId>
                </exclusion>
			-->	<exclusion>
					<groupId>com.vaadin</groupId>
					<artifactId>hilla</artifactId>
				</exclusion>
            </exclusions>
        </dependency>
        <!-- This tooltip component and other component-factory components can be found here:
            https://vaadin.com/components/component-factory -->
        <dependency>
            <groupId>com.vaadin.componentfactory</groupId>
            <artifactId>tooltip</artifactId>
            <version>2.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.vaadin.componentfactory</groupId>
            <artifactId>enhanced-dialog</artifactId>
            <version>23.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.vaadin.klaudeta</groupId>
            <artifactId>grid-pagination</artifactId>
            <version>4.0.1</version>
            </dependency>
        <dependency>
            <groupId>org.vaadin.artur</groupId>
            <artifactId>spring-data-provider</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.vaadin.gatanaso</groupId>
            <artifactId>multiselect-combo-box-flow</artifactId>
            <version>3.0.2</version> <!-- use appropriate version -->
        </dependency>
       <dependency>
           <groupId>com.flowingcode.vaadin.addons</groupId>
           <artifactId>twincolgrid</artifactId>
           <version>2.7.0</version>
       </dependency>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

        <!-- Instruct spring boot not to use the inbuilt Tomcat server -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
   <!-- <version>2.4.0</version>  -->
</dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-oauth2-client</artifactId>
		</dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-ldap</artifactId>
        </dependency>

        <dependency> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>tomcat-juli</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>tomcat-jdbc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

<!--
		https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jakarta-smtp -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jakarta-smtp</artifactId>
			<version>2.25.2</version>
		</dependency>

<!--		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>-->
		<!-- End of Spring -->

		<!-- https://mvnrepository.com/artifact/com.sun.mail/jakarta.mail -->
		<dependency>
		    <groupId>com.sun.mail</groupId>
		    <artifactId>jakarta.mail</artifactId>
		    <version>2.0.2</version>
		</dependency>		

        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
        </dependency>

        <dependency>
            <groupId>jakarta.jms</groupId>
            <artifactId>jakarta.jms-api</artifactId>
        </dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-core -->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
        </dependency>

        <dependency>
            <groupId>org.messaginghub</groupId>
            <artifactId>pooled-jms</artifactId>
        </dependency>

	    <dependency> 
	        <groupId>com.oracle</groupId> 
	        <artifactId>jdbc</artifactId> 
	        <version>11.2.0</version> 
	    </dependency>

        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>5.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.vaadin.olli</groupId>
            <artifactId>file-download-wrapper</artifactId>
            <version>7.1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-testbench</artifactId>
            <scope>test</scope>
        </dependency>
		<!-- Include JUnit 4 support for TestBench and others -->
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.hamcrest</groupId>
                    <artifactId>hamcrest-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.11.3</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-compress</artifactId>
			<version>1.20</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.20.0</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>			
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>

		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>9.37.4</version>
		</dependency>

		<dependency>
			<groupId>jakarta.xml.bind</groupId>
			<artifactId>jakarta.xml.bind-api</artifactId>
		</dependency>

		<dependency>
			<groupId>jakarta.platform</groupId>
			<artifactId>jakarta.jakartaee-api</artifactId>
			<version>10.0.0</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate.orm</groupId>
			<artifactId>hibernate-core</artifactId>
		</dependency>

	</dependencies>

Make sure all add ons are compatible with Vaadin 24.
Then you can try to run mvn vaadin:clean-frontend and restart the application

I did find that enhanced-dialog 23.1.2 is not compatible with Vaadin 24 and I have change it to version 1.0.4
However, restarting the app still have the same issue.

Browser console is now showing 2 more error msg:

sw.js:1761 Uncaught NetworkError: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'http://localhost:8080/app/sw-runtime-resources-precache.js' failed to load.
    at sw.js:1761:3
    at sw.js:1868:3
(anonymous) @ sw.js:1761
(anonymous) @ sw.js:1868Understand this error
The script resource is behind a redirect, which is disallowed.

IDE console is showing a new error msg:

DEBUG PushHandler - Session expired before push disconnect event was received

com.vaadin.flow.server.SessionExpiredException: null

at com.vaadin.flow.server.VaadinService.doFindOrCreateVaadinSession(VaadinService.java:1200) ~[flow-server-24.9.5.jar:24.9.5]

at com.vaadin.flow.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:1136) ~[flow-server-24.9.5.jar:24.9.5]

at com.vaadin.flow.server.VaadinService.findVaadinSession(VaadinService.java:975) ~[flow-server-24.9.5.jar:24.9.5]

at com.vaadin.flow.server.communication.PushHandler.handleConnectionLost(PushHandler.java:434) [flow-server-24.9.5.jar:24.9.5]

at com.vaadin.flow.server.communication.PushHandler.connectionLost(PushHandler.java:388) [flow-server-24.9.5.jar:24.9.5]

at com.vaadin.flow.server.communication.PushAtmosphereHandler$AtmosphereResourceListener.onDisconnect(PushAtmosphereHandler.java:113) [flow-server-24.9.5.jar:24.9.5]

at org.atmosphere.cpr.AtmosphereResourceImpl.onDisconnect(AtmosphereResourceImpl.java:752) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:644) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:625) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.cpr.AsynchronousProcessor.completeLifecycle(AsynchronousProcessor.java:486) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.cpr.AsynchronousProcessor.endRequest(AsynchronousProcessor.java:584) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.websocket.DefaultWebSocketProcessor.executeClose(DefaultWebSocketProcessor.java:689) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.websocket.DefaultWebSocketProcessor.close(DefaultWebSocketProcessor.java:635) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.atmosphere.container.JSR356Endpoint.onClose(JSR356Endpoint.java:318) [atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]

at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:718) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:626) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:349) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:281) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:129) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:85) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:184) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:164) [tomcat-websocket.jar:10.1.49]

at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:152) [tomcat-websocket.jar:10.1.49]

at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:60) [tomcat-coyote.jar:10.1.49]

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57) [tomcat-coyote.jar:10.1.49]

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) [tomcat-coyote.jar:10.1.49]

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1774) [tomcat-coyote.jar:10.1.49]

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-coyote.jar:10.1.49]

at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973) [tomcat-util.jar:10.1.49]

at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491) [tomcat-util.jar:10.1.49]

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-util.jar:10.1.49]

at java.base/java.lang.Thread.run(Thread.java:833) [?:?]

Twincolgrid seems also quite old. Multiselect ComboBox is now also a Vaadin component.

The script resource is behind a redirect, which is disallowed.

makes me think that there could be a security framework blocking some Vaadin request

I think this add-on is not needed in Vaadin 24, all the features it gives are baked in in regular Dialog component (mainly footer and header parts).

1 Like

I don’t think Vaadin 24 provides the TwinColGrid component, so I probably still need this add-on.

Let me switch to Vaddin component for Multiselect ComboBox first

Right now, I’m not sure whether the issue is caused by the security configuration or an add-on.

Should I remove the add-ons one by one to see if that resolves the issue?

ok, I will replace enhanced-dialog with the built-in dialog first.

Sharing my list of add-ons in case someone can spot what the issue is.
I am going to replace the multiselect-combo-box-flow with the vaddin 24 component one

  <dependency>
            <groupId>com.vaadin.componentfactory</groupId>
            <artifactId>tooltip</artifactId>
            <version>1.3.7</version>
        </dependency>

        <dependency>
            <groupId>org.vaadin.klaudeta</groupId>
            <artifactId>grid-pagination</artifactId>
            <version>4.0.1</version>
            </dependency>
        <dependency>
            <groupId>org.vaadin.artur</groupId>
            <artifactId>spring-data-provider</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.vaadin.gatanaso</groupId>
            <artifactId>multiselect-combo-box-flow</artifactId>
            <version>3.0.2</version>
        </dependency>
       <dependency>
           <groupId>com.flowingcode.vaadin.addons</groupId>
           <artifactId>twincolgrid</artifactId>
           <version>2.7.0</version>
       </dependency>
	   <dependency>
            <groupId>org.vaadin.olli</groupId>
            <artifactId>file-download-wrapper</artifactId>
            <version>7.1.0</version>
            <scope>provided</scope>
        </dependency>

i would think most of them if not all either cause problems or are not needed anymore. (No idea about twincol)

wow, really
The add on page says it’s compatible with Vaadin 24.
For example, the one for tooltip
image

Let me try removing them one by one to see if it can fix the issue

It’s really hard to trust this matrix tbh… just an example:

  • tooltip is now a native / official component. That addon got no updates for 3 years and your version is even older

  • multicombox as well

  • data provider addition is completely useless IMHO

  • file download wrapper is provided? Does not make sense and it’s obsolete (kinda) with the new download APi

1 Like

Thanks to the suggestion from @marcoc_753 and @knoobie

I was able to find the add on that caused the problem.
I was just removing/replacing the add on one by one to see if it resolves the issue

Note: The add-on page Version Matrix does not give accurate information about capability
For example, for twincolngrid, It shows 2.7.1 is good with vaadin 24
image

it was Twincolgrid 2.7.1 causing the issue, using 3.1.0 solved the issue.

The version 2.7.1 has a compatibility Vaadin 14+. It was ok probably only for Vaadin 14.

By default if you’re updating to the latest Vaadin version always take the last one and always check each addon page or repository.

I’ve updated the Tooltip component and add a link to the official component.

1 Like