Issues upgrading Vaadin. Again

Trying to upgrade from 24.5.0.beta5 to 24.5.1, and I’m running into issues.

My setup is a multi-module maven project with a vaadin “widgetset” as one of the modules.
This produces an ear containing several wars and a vaadin “widgetset” jar, which we run on wildfly.

At boot, I got two of these:

14:44:50,550 ERROR [com.vaadin.flow.server.frontend.BundleUtils] (ServerService Thread Pool – 119) Failed to copy existing package-lock.json to use: java.nio.file.FileSystemException: C:\DeveloperArea\dawinci-main\vaadin-upgrade\ptsmc-widgetset\target\dev-bundle\package-lock.json →

14:44:50,550 ERROR [com.vaadin.flow.server.frontend.BundleUtils] (ServerService Thread Pool – 114) Failed to copy existing package-lock.json to use: java.nio.file.FileSystemException: C:\DeveloperArea\dawinci-main\vaadin-upgrade\ptsmc-widgetset\target\dev-bundle\package-lock.json →

And then later on, when I accessed the 1st vaadin page I got

Failed to find the following css files in the node_modules or C:\DeveloperArea\dawinci-main\vaadin-upgrade\ptsmc-widgetset\src\main\frontend directory tree:
- leaflet/dist/leaflet.css

Checking in node_modules I saw that the file had been renamed for some reason:

leaflet\dist\leaflet.css.DELETE.462c023d5a95cd0bbb12b41499d3a5eb

Suspecting that Vaadin is interfering with itself while processing things in parallel, I set a breakpoint in DevModeInitializer.initDevModeHandler

After doing a clean-frontend and a restart, the breakpoint was hit 4 times. I let the 1st one complete before letting the other ones continue, and now everything works as expected.

Looking at the context at each breakpoint, it looks like Vaadin is called once for each war in the ear, no matter if the war uses vaadin or not.

So…

Now I can check in the dev.bundle and everything will work until the next upgrade.

Is there anything I can do in my setup to work around this, or is this just a bug in Vaadin?
Seems like there should’ve been a “synchronized” somewhere in DevModeInitializer.

Alternatively I could probably run without DevMode. So far it has only been a source of trouble.

My best guess would be to report it on GitHub with a simple reproducer to get it fixed - it sounds erroneous and pretty annoying

Have done so:

Production of dev.bundle fails in ear with multiple wars · Issue #6936 · vaadin/platform · GitHub

I believe I partially understand what’s going on now;
We have an ear with multiple “skinnywars”. This means their shared dependencies, including vaadin, have been moved to ear\lib. Everything in ear\lib is on the classpath for all wars, so the dev startup listener is called for each of them, even for the wars that don’t use vaadin.