diff --git a/src/Microsoft.IdentityModel.Protocols/Configuration/ConfigurationManager.cs b/src/Microsoft.IdentityModel.Protocols/Configuration/ConfigurationManager.cs
index 1f38022f33..ed3d4b7e67 100644
--- a/src/Microsoft.IdentityModel.Protocols/Configuration/ConfigurationManager.cs
+++ b/src/Microsoft.IdentityModel.Protocols/Configuration/ConfigurationManager.cs
@@ -316,7 +316,7 @@ public override void RequestRefresh()
                 _isFirstRefreshRequest = false;
                 if (Interlocked.CompareExchange(ref _configurationRetrieverState, ConfigurationRetrieverRunning, ConfigurationRetrieverIdle) == ConfigurationRetrieverIdle)
                 {
-                    _ = Task.Run(UpdateCurrentConfiguration, CancellationToken.None);
+                    UpdateCurrentConfiguration();
                     _lastRequestRefresh = now;
                 }
             }
diff --git a/test/Microsoft.IdentityModel.Protocols.OpenIdConnect.Tests/ConfigurationManagerTests.cs b/test/Microsoft.IdentityModel.Protocols.OpenIdConnect.Tests/ConfigurationManagerTests.cs
index 83d7f5d69c..2fba523106 100644
--- a/test/Microsoft.IdentityModel.Protocols.OpenIdConnect.Tests/ConfigurationManagerTests.cs
+++ b/test/Microsoft.IdentityModel.Protocols.OpenIdConnect.Tests/ConfigurationManagerTests.cs
@@ -230,7 +230,7 @@ public async Task VerifyInterlockGuardForRequestRefresh()
             // Interlocked guard will block.
             // Configuration should be AADCommonV1Config
             signalEvent.Reset();
-            configurationManager.RequestRefresh();
+            _ = Task.Run(() => configurationManager.RequestRefresh());
 
             // InMemoryDocumentRetrieverWithEvents will signal when it is OK to change the MetadataAddress
             // otherwise, it may be the case that the MetadataAddress is changed before the previous Task has finished.
@@ -239,7 +239,7 @@ public async Task VerifyInterlockGuardForRequestRefresh()
             // AADCommonV1Json would have been passed to the the previous retriever, which is blocked on an event.
             configurationManager.MetadataAddress = "AADCommonV2Json";
             TestUtilities.SetField(configurationManager, "_lastRequestRefresh", DateTimeOffset.MinValue);
-            configurationManager.RequestRefresh();
+            _ = Task.Run(() => configurationManager.RequestRefresh());
 
             // Set the event to release the lock and let the previous retriever finish.
             waitEvent.Set();
@@ -658,14 +658,13 @@ public async Task GetConfigurationAsync()
             var configuration = await configManager.GetConfigurationAsync(CancellationToken.None);
 
             TestUtilities.SetField(configManager, "_lastRequestRefresh", DateTimeOffset.UtcNow - TimeSpan.FromHours(1));
-            configManager.RequestRefresh();
             configManager.MetadataAddress = "http://127.0.0.1";
+            configManager.RequestRefresh();
             var configuration2 = await configManager.GetConfigurationAsync(CancellationToken.None);
             IdentityComparer.AreEqual(configuration, configuration2, context);
             if (!object.ReferenceEquals(configuration, configuration2))
                 context.Diffs.Add("!object.ReferenceEquals(configuration, configuration2)");
 
-
             // get configuration from http address, should throw
             // get configuration with unsuccessful HTTP response status code
             TestUtilities.AssertFailIfErrors(context);