Hi,
we recently switched from Camel 3.18 to Camel 3.22 and we discovered following issue in some of our applications: We have several applications that use e.g. openapi generator to create separate route builder classes, a minimal reproducible example is: @Component public final class RestRoute extends RouteBuilder { public void configure() { rest().get().id("myRoute1").to("log:foo"); } } The id “myRoute1” is specified over the operationId in the open API spec. Furthermore, we have following “main” route using the same route ID (not on purpose): @Component public class MainRoute extends RouteBuilder { public void configure() { from("direct:myRoute1").routeId("myRoute1").to("log:bar"); } } The routeId in this route is typically set over config. Both routes use the same ID (which is not easy to detect in an application if REST route is auto-generated and main route gets ID from config). In Camel 3.18, we did not have a problem with that. However, in Camel 3.22, running a simple unit test shows a non-deterministic behavior: 1. If RestRoute is configured first, it gets the ID “myRoute1” assigned. Afterwards, MainRoute is configured, and detects that “myRoute1” is already used, and throws an Exception: FailedToStartRouteException: Failed to start route myRoute1 because of duplicate id detected: myRoute1. 2. If MainRoute is configured first, it gets the ID “myRoute1” assigned. Afterwards, RestRoute is configured, and detects that “myRoute1” is already used, and then assigns a new route ID to RestRoute (“route1”). No problem arises here. The problem is that the result varies from run to run. We had the situation, that in local unit test and test pipeline, the tests were running fine, but in the production deployment the test suddenly failed. Even worse is that the application startup would also fail if RestRoute is configured first. Another problem in Camel 3.22 we discovered in our tests was that if RestRoute uses .routeId() instead of .id(), e.g. rest().get().routeId("myRoute1").to("log:foo"), then one of the two routes will not start at all, without throwing an error. Here, the route that is configured first starts, and the other route won’t start. In Camel 3.18, .routeId() is not available for rest routes at all, so no problem there. So, it looks like the order of route configuration was deterministic in Camel 3.18 (here, it seems the route configuration order depended on the name of the class or the package the class is in). In Camel 3.22 it seems this is not deterministic anymore, leading to above-described problems. Please let us know if this behavior is known and if I should create a ticket for it. Thanks