diff --git a/src/app/CASEClient.cpp b/src/app/CASEClient.cpp
index 7ce5a53..5eef508 100644
--- a/src/app/CASEClient.cpp
+++ b/src/app/CASEClient.cpp
@@ -16,6 +16,7 @@
  */
 
 #include <app/CASEClient.h>
+#include <messaging/ReliableMessageProtocolConfig.h>
 
 namespace chip {
 
@@ -49,10 +50,12 @@
     Messaging::ExchangeContext * exchange = params.exchangeMgr->NewContext(session.Value(), &mCASESession);
     VerifyOrReturnError(exchange != nullptr, CHIP_ERROR_INTERNAL);
 
+    const Optional<ReliableMessageProtocolConfig> & mrpLocalConfig =
+        params.mrpLocalConfig.HasValue() ? params.mrpLocalConfig : GetLocalMRPConfig();
     mCASESession.SetGroupDataProvider(params.groupDataProvider);
     ReturnErrorOnFailure(mCASESession.EstablishSession(*params.sessionManager, params.fabricTable, peer, exchange,
                                                        params.sessionResumptionStorage, params.certificateValidityPolicy, delegate,
-                                                       params.mrpLocalConfig));
+                                                       mrpLocalConfig));
 
     return CHIP_NO_ERROR;
 }
diff --git a/src/app/CASEClient.h b/src/app/CASEClient.h
index b640ae0..7ef968d 100644
--- a/src/app/CASEClient.h
+++ b/src/app/CASEClient.h
@@ -34,7 +34,11 @@
     Messaging::ExchangeManager * exchangeMgr                           = nullptr;
     FabricTable * fabricTable                                          = nullptr;
     Credentials::GroupDataProvider * groupDataProvider                 = nullptr;
-    Optional<ReliableMessageProtocolConfig> mrpLocalConfig             = Optional<ReliableMessageProtocolConfig>::Missing();
+
+    // mrpLocalConfig should not generally be set to anything other than
+    // NullOptional.  Doing that can lead to different parts of the system
+    // claiming different MRP parameters for the same node.
+    Optional<ReliableMessageProtocolConfig> mrpLocalConfig = NullOptional;
 
     CHIP_ERROR Validate() const
     {
diff --git a/src/app/server/Server.cpp b/src/app/server/Server.cpp
index f2a5620..e046080 100644
--- a/src/app/server/Server.cpp
+++ b/src/app/server/Server.cpp
@@ -313,7 +313,9 @@
             .exchangeMgr       = &mExchangeMgr,
             .fabricTable       = &mFabrics,
             .groupDataProvider = mGroupsProvider,
-            .mrpLocalConfig    = GetLocalMRPConfig(),
+            // Don't provide an MRP local config, so each CASE initiation will use
+            // the then-current value.
+            .mrpLocalConfig = NullOptional,
         },
         .clientPool            = &mCASEClientPool,
         .sessionSetupPool      = &mSessionSetupPool,
diff --git a/src/controller/CHIPDeviceControllerFactory.cpp b/src/controller/CHIPDeviceControllerFactory.cpp
index ebc728c..25bcd12 100644
--- a/src/controller/CHIPDeviceControllerFactory.cpp
+++ b/src/controller/CHIPDeviceControllerFactory.cpp
@@ -270,7 +270,9 @@
         .exchangeMgr               = stateParams.exchangeMgr,
         .fabricTable               = stateParams.fabricTable,
         .groupDataProvider         = stateParams.groupDataProvider,
-        .mrpLocalConfig            = GetLocalMRPConfig(),
+        // Don't provide an MRP local config, so each CASE initiation will use
+        // the then-current value.
+        .mrpLocalConfig = NullOptional,
     };
 
     CASESessionManagerConfig sessionManagerConfig = {
