diff --git a/src/app/clusters/level-control/level-control.cpp b/src/app/clusters/level-control/level-control.cpp
index 28f7c16..c7e376a 100644
--- a/src/app/clusters/level-control/level-control.cpp
+++ b/src/app/clusters/level-control/level-control.cpp
@@ -419,14 +419,6 @@
 
     updateCoupledColorTemp(endpoint);
 
-#ifdef EMBER_AF_PLUGIN_SCENES
-    // The level has changed, so the scene is no longer valid.
-    if (emberAfContainsServer(endpoint, Scenes::Id))
-    {
-        Scenes::ScenesServer::Instance().MakeSceneInvalid(endpoint);
-    }
-#endif // EMBER_AF_PLUGIN_SCENES
-
     // Are we at the requested level?
     if (currentLevel.Value() == state->moveToLevel)
     {
@@ -918,6 +910,14 @@
 
     state->callbackSchedule.runTime = System::Clock::Milliseconds32(0);
 
+#ifdef EMBER_AF_PLUGIN_SCENES
+    // The level has changed, the scene is no longer valid.
+    if (emberAfContainsServer(endpoint, Scenes::Id))
+    {
+        Scenes::ScenesServer::Instance().MakeSceneInvalid(endpoint);
+    }
+#endif // EMBER_AF_PLUGIN_SCENES
+
     // The setup was successful, so mark the new state as active and return.
     scheduleTimerCallbackMs(endpoint, computeCallbackWaitTimeMs(state->callbackSchedule, state->eventDurationMs));
 
diff --git a/src/app/clusters/scenes-server/SceneTableImpl.cpp b/src/app/clusters/scenes-server/SceneTableImpl.cpp
index 70ad7ab..ea894c9 100644
--- a/src/app/clusters/scenes-server/SceneTableImpl.cpp
+++ b/src/app/clusters/scenes-server/SceneTableImpl.cpp
@@ -767,7 +767,9 @@
     FabricSceneData fabric(mEndpointId, fabric_index, mMaxScenesPerFabric, mMaxScenesPerEndpoint);
     SceneTableData scene(mEndpointId, fabric_index);
 
-    ReturnErrorOnFailure(fabric.Load(mStorage));
+    CHIP_ERROR err = fabric.Load(mStorage);
+    VerifyOrReturnValue(CHIP_ERROR_NOT_FOUND != err, CHIP_NO_ERROR);
+    ReturnErrorOnFailure(err);
 
     for (uint16_t i = 0; i < mMaxScenesPerFabric; i++)
     {
diff --git a/src/app/clusters/scenes-server/scenes-server.cpp b/src/app/clusters/scenes-server/scenes-server.cpp
index 9fe8763..92eb472 100644
--- a/src/app/clusters/scenes-server/scenes-server.cpp
+++ b/src/app/clusters/scenes-server/scenes-server.cpp
@@ -718,11 +718,15 @@
     if (CHIP_NO_ERROR == err)
     {
         status = Attributes::SceneValid::Set(ctx.mRequestPath.mEndpointId, true);
-        if (EMBER_ZCL_STATUS_SUCCESS != status)
-        {
-            ctx.mCommandHandler.AddStatus(ctx.mRequestPath, ToInteractionModelStatus(status));
-            return;
-        }
+        ctx.mCommandHandler.AddStatus(ctx.mRequestPath, ToInteractionModelStatus(status));
+        return;
+    }
+
+    if (CHIP_ERROR_NOT_FOUND == err)
+    {
+        // TODO : implement proper mapping between CHIP_ERROR and IM Status
+        ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Protocols::InteractionModel::Status::NotFound);
+        return;
     }
 
     ctx.mCommandHandler.AddStatus(ctx.mRequestPath, StatusIB(err).mStatus);
