Vaadin 25: 'vaadin-dev-server' not found

I upgraded my app from Vaadin 24 to 25 and now it requires the vaadin-dev dependency. I do not use dev mode, so I have not included this dependency previously - why is it required now? Is that an indication that perhaps I am not really starting my application in production mode?

If I include this dependency, the application starts, but it also starts a dev-server, which I do not want. At least I think that is what it does. The output during startup is:

2026-04-01 13:08:52.171  INFO  [    main]  Starting dev-mode updaters in /home/***/***-app folder.
2026-04-01 13:08:52.200  INFO  [    main]  Visited 154 classes. Took 18 ms.
2026-04-01 13:08:52.201  INFO  [    main]  Checking if a development mode bundle build is needed
2026-04-01 13:08:52.214  INFO  [    main]  Dependency @vaadin-component-factory/vcf-date-range-picker is missing from the bundle
2026-04-01 13:08:52.214  INFO  [    main]  Dependency react-image-crop is missing from the bundle
2026-04-01 13:08:52.214  INFO  [    main]  A development mode bundle build is needed
2026-04-01 13:08:52.219  INFO  [    main]  Creating a new development mode bundle. This can take a while but will only run when the project setup is changed, addons are added or frontend files are modified

I do notice the complaints about the two add-ons vcf-date-range-picker and react-image-crop. Does this mean those do not support Vaadin 25, even though (at least for the date-range-picker) they say they do.

I am building like this:
../gradlew -Dvaadin.force.production.build=true -x check -x test clean build
I am running like this:
../gradlew -DproductionMode=true -Dspring.profiles.active=dev -x check -x test bootRun

Are you building a war file or a jar?

Also noting that you have -DproductionMode while you should use -Dvaadin.productionMode=true; see How to configure Gradle for Vaadin projects

I am building a Jar file for Spring Boot.

I am getting Vaadin is running in DEVELOPMENT mode - do not use for production deployments

Whether I’m using -DproductionMode or -Dvaadin.productionMode=true - doesn’t matter. The docs appear to mention only WAR files.

I just saw that I have the following in my build.gradle as well:

vaadin {
    pnpmEnable = true
    productionMode = true
    generateBundle = true
    optimizeBundle = true
    reactEnable = true
    eagerServerLoad = true
    frontendHotdeploy = false
}

In Vaadin 24, vaadin-dev was added by default when using Vaadin.
In Vaadin 25, the dependency is optional and should be explicitly added in the Gradle build configuration (How to upgrade Vaadin applications)

The -Pvaadin.productionMode property activates the vaadinBuildFrontend task and generates the production bundle that is then packaged into the JAR file.

If you run gradle -Pvaadin.productionMode build for a Spring Boot base application, you should have as output a production-ready fat jar that you can run with java -jar ... (assuming also Spring Boot Gradle plugin is properly configured)

If this does not happen, please post the full log and the exact Vaadin version you are using.
Adding the --info flag could be beneficial to get more insights

About the add-ons: react-image-crop seems to have a Vaadin 25.0 compatible version that might work, but vcf-date-range-picker does not seem to support Vaadin 25 (Date Time Range Picker - Vaadin Add-on Directory). @Tatu2 might have more info about that add-on.

Hey thanks for your input, all duly noted. The Date Time Range Picker seems to also support Vaadin 25 when included directly via com.vaadin.componentfactory:vcf-date-range-picker:6.0.0 which is what I did.

So what you’re saying is that if I don’t add the dependency for vaadin-dev and then build and run in production mode, it should work. So if it doesn’t, then I should probably submit a bug report with full logs or should I post that here?

Optional in the sense of Optional Dependency in Maven | Baeldung

Maybe my English isn’t good enough or I am just dumbfounded. But is the dependency now optional orshould it be explicity added to the build? In my understanding that would mean it is not optional at all.

So if it really is optional, how can I get Vaadin to run without it?

And if it is not optional, I can sure include it (as it was by default in Vaadin 24), but then how do I run my app in production mode?

I realize the terminology can be confusing, but as stated in the Gradle blog, Optional dependencies are not optional. So you should include that dependency, and proceed with the production build as instructed.

If gradle -Pvaadin.productionMode build still gives you a development mode build, then it’s a bug that should be investigated and addressed; see Marco’s post above.

By the way, do you see the dev mode server started, when you do not have the vaadin-dev dependency?

In the logs there’s Starting dev-mode updaters but this does not mean the dev-server is started. It is just Vaadin building a development bundle because you added a custom npm package.

Otherwise, please post the logs of the startup that show the dev server has started.

EDIT Anyway, this means the application you are running is not in production mode. How do you start it?

Note that you’re using -D, not -P

1 Like

Ok thanks guys, so I was misunderstanding the term “optional”. I’ve now included the vaadin-dev dependency and wiped my entire directory and checked everything out again to make 100% sure I am starting from scratch. Then I rebuilt and ran in production mode the same way I did it with Vaadin 24, which is:

gradlew build -Dvaadin.force.production.build=true

gradlew bootRun -Dvaadin.productionMode=true -Dspring.profiles.active=dev

And now Vaadin is running in production mode. The message Vaadin is running in DEVELOPMENT mode - do not use for production deployments has been replaced by Vaadin is running in production mode. so everything seems in order now.

I don’t know what happened before, as I was using the exact same commands, but apparently wiping the directory did the job. Thanks for the information, now I know a little bit more about Vaadin :)

However, for some reason I also did not get the output about Starting dev-mode updaters anymore.