Hi,

We have a Gradle plugin built on top of the Spring Boot Gradle plugin. With the upgrade from version 3.5.3 to 3.5.4, our integration tests caught an issue caused by artifacts being resolved from within the resolution of another configuration, manifesting in:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':dependencies'. |  
-- | --
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130) |  
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:293) |  
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128) |  
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116) |  
at org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:40) |  
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) |  
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) |  
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) |  
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) |  
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) |  
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) |  
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) |  
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54) |  
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) |  
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) |  
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331) |  
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318) |  
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314) |  
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85) |  
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314) |  
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303) |  
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459) |  
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376) |  
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) |  
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48) |  
Caused by: org.gradle.api.internal.artifacts.ivyservice.TypedResolveException: Could not resolve all artifacts for configuration ':runtimeClasspath'. |  
at org.gradle.api.internal.artifacts.ResolveExceptionMapper.mapFailure(ResolveExceptionMapper.java:70) |  
at org.gradle.api.internal.artifacts.ResolveExceptionMapper.mapFailures(ResolveExceptionMapper.java:62) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$DefaultResolutionHost.consolidateFailures(DefaultConfiguration.java:1928) |  
at org.gradle.api.internal.artifacts.configurations.ResolutionHost.rethrowFailuresAndReportProblems(ResolutionHost.java:75) |  
at org.gradle.api.internal.artifacts.configurations.DefaultArtifactCollection.lambda$new$0(DefaultArtifactCollection.java:52) |  
at org.gradle.internal.model.CalculatedValueContainerFactory$SupplierBackedCalculator.calculateValue(CalculatedValueContainerFactory.java:69) |  
at org.gradle.internal.model.CalculatedValueContainer$CalculationState.lambda$attachValue$0(CalculatedValueContainer.java:229) |  
at org.gradle.internal.Try.ofFailable(Try.java:50) |  
at org.gradle.internal.model.CalculatedValueContainer$CalculationState.attachValue(CalculatedValueContainer.java:224) |  
at org.gradle.internal.model.CalculatedValueContainer.finalizeIfNotAlready(CalculatedValueContainer.java:195) |  
at org.gradle.internal.model.CalculatedValueContainer.finalizeIfNotAlready(CalculatedValueContainer.java:186) |  
at org.gradle.api.internal.artifacts.configurations.DefaultArtifactCollection.ensureResolved(DefaultArtifactCollection.java:103) |  
at org.gradle.api.internal.artifacts.configurations.DefaultArtifactCollection.getArtifacts(DefaultArtifactCollection.java:75) |  
at org.springframework.boot.gradle.plugin.JavaPluginAction.resolvedArtifactsOf(JavaPluginAction.java:315) |  
at org.springframework.boot.gradle.plugin.JavaPluginAction.constraintsFrom(JavaPluginAction.java:306) |  
at org.springframework.boot.gradle.plugin.JavaPluginAction.lambda$configureProductionRuntimeClasspathConfiguration$24(JavaPluginAction.java:301) |  
at org.gradle.api.internal.provider.DefaultProvider.calculateOwnValue(DefaultProvider.java:73) |  
at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:117) |  
at org.gradle.api.internal.provider.Collectors$ElementsFromCollectionProvider.collectEntries(Collectors.java:243) |  
at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.lambda$calculateOwnValue$0(AbstractCollectionProperty.java:502) |  
at org.gradle.api.internal.provider.AbstractCollectingSupplier.calculateValue(AbstractCollectingSupplier.java:87) |  
at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.calculateOwnValue(AbstractCollectionProperty.java:501) |  
at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:117) |  
at org.gradle.api.internal.provider.AbstractCollectingSupplier.calculateValue(AbstractCollectingSupplier.java:41) |  
at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:310) |  
at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:79) |  
at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:172) |  
at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:165) |  
at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:82) |  
at org.gradle.api.internal.provider.AbstractCollectionProperty.size(AbstractCollectionProperty.java:198) |  
at org.gradle.api.internal.provider.Collectors$ElementsFromCollectionProvider.size(Collectors.java:291) |  
at org.gradle.api.internal.collections.AbstractIterationOrderRetainingElementSource$Element.realize(AbstractIterationOrderRetainingElementSource.java:351) |  
at org.gradle.api.internal.collections.AbstractIterationOrderRetainingElementSource.realizePending(AbstractIterationOrderRetainingElementSource.java:140) |  
at org.gradle.api.internal.collections.IterationOrderRetainingSetElementSource.iterator(IterationOrderRetainingSetElementSource.java:47) |  
at org.gradle.api.internal.DefaultDomainObjectCollection.iterator(DefaultDomainObjectCollection.java:152) |  
at org.gradle.api.internal.DelegatingDomainObjectSet.iterator(DelegatingDomainObjectSet.java:145) |  
at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultLocalVariantGraphResolveStateBuilder.doGetDefinedState(DefaultLocalVariantGraphResolveStateBuilder.java:282) |  
at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.LocalVariantGraphResolveStateBuilder$DependencyCache.computeIfAbsent(LocalVariantGraphResolveStateBuilder.java:82) |  
at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultLocalVariantGraphResolveStateBuilder.getDefinedState(DefaultLocalVariantGraphResolveStateBuilder.java:246) |  
at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultLocalVariantGraphResolveStateBuilder.lambda$getConfigurationDependencyState$2(DefaultLocalVariantGraphResolveStateBuilder.java:228) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.visitAll(DefaultConfigurationContainer.java:119) |  
at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultLocalVariantGraphResolveStateBuilder.lambda$getConfigurationDependencyState$3(DefaultLocalVariantGraphResolveStateBuilder.java:226) |  
at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:453) |  
at org.gradle.api.internal.artifacts.ivyservice.moduleconverter.dependencies.DefaultLocalVariantGraphResolveStateBuilder.lambda$getConfigurationDependencyState$4(DefaultLocalVariantGraphResolveStateBuilder.java:221) |  
at org.gradle.internal.model.CalculatedValueContainer$CalculationState.lambda$attachValue$0(CalculatedValueContainer.java:229) |  
at org.gradle.internal.Try.ofFailable(Try.java:50) |  
at org.gradle.internal.model.CalculatedValueContainer$CalculationState.attachValue(CalculatedValueContainer.java:224) |  
at org.gradle.internal.model.CalculatedValueContainer.finalizeIfNotAlready(CalculatedValueContainer.java:195) |  
at org.gradle.internal.model.CalculatedValueContainer.finalizeIfNotAlready(CalculatedValueContainer.java:186) |  
at org.gradle.internal.component.local.model.DefaultLocalVariantGraphResolveState.getFiles(DefaultLocalVariantGraphResolveState.java:143) |  
at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitingResolutionExecutor.hasDependencies(ShortCircuitingResolutionExecutor.java:118) |  
at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitingResolutionExecutor.resolveGraph(ShortCircuitingResolutionExecutor.java:91) |  
at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:129) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:764) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:756) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphInBuildOperation(DefaultConfiguration.java:756) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusivelyIfRequired$5(DefaultConfiguration.java:748) |  
at org.gradle.api.internal.project.DefaultProjectStateRegistry$CalculatedModelValueImpl.update(DefaultProjectStateRegistry.java:533) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusivelyIfRequired(DefaultConfiguration.java:743) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:736) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1300(DefaultConfiguration.java:150) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ResolverResultsResolutionResultProvider.getValue(DefaultConfiguration.java:709) |  
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ResolverResultsResolutionResultProvider.getValue(DefaultConfiguration.java:695) |  
at org.gradle.api.internal.artifacts.resolver.DefaultResolutionOutputs.getVisitedGraphResults(DefaultResolutionOutputs.java:107) |  
at org.gradle.api.internal.artifacts.resolver.DefaultResolutionOutputs.lambda$getRootComponent$1(DefaultResolutionOutputs.java:100) |  
at org.gradle.api.internal.provider.DefaultProvider.calculateOwnValue(DefaultProvider.java:73) |  
at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:82) |  
at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:102) |  
at org.gradle.api.tasks.diagnostics.internal.dependencies.AsciiDependencyReportRenderer.render(AsciiDependencyReportRenderer.java:89) |  
at org.gradle.api.tasks.diagnostics.AbstractDependencyReportTask.generateReportFor(AbstractDependencyReportTask.java:96) |  
at org.gradle.api.tasks.diagnostics.AbstractDependencyReportTask.generateReportFor(AbstractDependencyReportTask.java:47) |  
at org.gradle.api.tasks.diagnostics.AbstractProjectBasedReportTask.lambda$action$1(AbstractProjectBasedReportTask.java:89) |  
at org.gradle.api.tasks.diagnostics.internal.ReportGenerator.generateReport(ReportGenerator.java:99) |  
at org.gradle.api.tasks.diagnostics.AbstractProjectBasedReportTask.action(AbstractProjectBasedReportTask.java:84) |  
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |  
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) |  
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |  
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125) |  
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) |  
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) |  
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) |  
at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:30) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:27) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:48) |  
at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229) |  
at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212) |  
at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195) |  
at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162) |  
at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105) |  
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44) |  
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59) |  
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60) |  
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54) |  
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56) |  
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44) |  
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42) |  
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75) |  
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) |  
at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50) |  
at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28) |  
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67) |  
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37) |  
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61) |  
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26) |  
at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69) |  
at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46) |  
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40) |  
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29) |  
at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189) |  
at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75) |  
at org.gradle.internal.Either$Right.fold(Either.java:175) |  
at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62) |  
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73) |  
at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48) |  
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46) |  
at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35) |  
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75) |  
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53) |  
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53) |  
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35) |  
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) |  
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) |  
at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49) |  
at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27) |  
at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71) |  
at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39) |  
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65) |  
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36) |  
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:107) |  
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:56) |  
at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64) |  
at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43) |  
at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125)

Inspecting changes in 3.5.4 the issue may be caused by https://github.com/spring-projects/spring-boot/commit/bdee9c9b19405963c32cb2c24d3187d48e058c0b#diff-5efe17833c4d5e21d01178734dea8859dc1669199669101a36448ed696413820.

Can you please take a look and if confirmed consider using consistent resolution: https://docs.gradle.org/current/userguide/dependency_resolution_consistency.html#implementing_consistent_resolution.

Comment From: wilkinsona

TIL about shouldResolveConsistentlyWith. Thank you, @iuliiasobolevska, I'll see what we can do. If nothing else, it'll be considerably simpler than the changes made in bdee9c9b19405963c32cb2c24d3187d48e058c0b.

Can you share a bit more about how you found this and how to reproduce the failure above? The changes should be doing everything lazily, specifically to avoid early dependency resolution. As far as I can tell, nothing's being resolved at configuration time which is what we wanted to avoid.