Hi,

I have a problem after upgrading Spring Boot to version 4.4.0 (MongoDB driver 5.2.1). I can no longer update an unique index using:

mongoOperations.indexOps(...).alterIndex(...)

An exception is thrown:

org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 40415 (Location40415): 'BSON field 'collMod.index.unique' is an unknown field.' on server localhost:27017. The full response is {"ok": 0.0, "errmsg": "BSON field 'collMod.index.unique' is an unknown field.", "code": 40415, "codeName": "Location40415", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1733395265, "i": 86}}, "signature": {"hash": {"$binary": {"base64": "e7b1zCSZjPbuCF605KyeSN/SKjI=", "subType": "00"}}, "keyId": 7390671167658393754}}, "operationTime": {"$timestamp": {"t": 1733395265, "i": 86}}}
    at org.springframework.data.mongodb.core.MongoExceptionTranslator.doTranslateException(MongoExceptionTranslator.java:151)
    at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:74)
    at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:3008)
    at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:584)
    at org.springframework.data.mongodb.core.DefaultIndexOperations.alterIndex(DefaultIndexOperations.java:170)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:382)
    at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:254)
    at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:173)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387)
    at org.springframework.boot.context.event.EventPublishingRunListener.ready(EventPublishingRunListener.java:109)
    at org.springframework.boot.SpringApplicationRunListeners.lambda$ready$6(SpringApplicationRunListeners.java:80)
    at java.base/java.lang.Iterable.forEach(Iterable.java:75)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112)
    at org.springframework.boot.SpringApplicationRunListeners.ready(SpringApplicationRunListeners.java:80)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:332)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102)
    at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
    at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)

My MongoDB version is 5.0. It worked well before upgrading SpringBoot version (3.3.5 > 3.4.0). According to the documentation, latest Mongo driver should fully supports Mongo 5.0, so is it some kind of driver’s bug?

Comment From: philwebb

This is unlikely to be something that the Spring Boot team can help you with directly. I see you've asked on the MongoDB forum. That's probably the best starting point.

If they can't help, you might want to open an issue at https://github.com/spring-projects/spring-data-mongodb/issues and provide a project that reproduces the problem.