[Scenes] make LastConfiguredBy optional (#30308)

* Unsupported Attribute in UpdateLastConfiguredBy no longer causes commands to fail

* Update src/app/clusters/scenes-server/scenes-server.cpp

Co-authored-by: mkardous-silabs <84793247+mkardous-silabs@users.noreply.github.com>

---------

Co-authored-by: mkardous-silabs <84793247+mkardous-silabs@users.noreply.github.com>
diff --git a/src/app/clusters/scenes-server/scenes-server.cpp b/src/app/clusters/scenes-server/scenes-server.cpp
index 08f9259..0bb0e01 100644
--- a/src/app/clusters/scenes-server/scenes-server.cpp
+++ b/src/app/clusters/scenes-server/scenes-server.cpp
@@ -80,17 +80,20 @@
 CHIP_ERROR UpdateLastConfiguredBy(HandlerContext & ctx, ResponseType resp)
 {
     Access::SubjectDescriptor descriptor = ctx.mCommandHandler.GetSubjectDescriptor();
+    EmberAfStatus status                 = EMBER_ZCL_STATUS_SUCCESS;
+
     if (AuthMode::kCase == descriptor.authMode)
     {
-        ReturnErrorOnFailure(
-            AddResponseOnError(ctx, resp, Attributes::LastConfiguredBy::Set(ctx.mRequestPath.mEndpointId, descriptor.subject)));
+        status = Attributes::LastConfiguredBy::Set(ctx.mRequestPath.mEndpointId, descriptor.subject);
     }
     else
     {
-        ReturnErrorOnFailure(AddResponseOnError(ctx, resp, Attributes::LastConfiguredBy::SetNull(ctx.mRequestPath.mEndpointId)));
+        status = Attributes::LastConfiguredBy::SetNull(ctx.mRequestPath.mEndpointId);
     }
 
-    return CHIP_NO_ERROR;
+    // LastConfiguredBy is optional, so we don't want to fail the command if it fails to update
+    VerifyOrReturnValue(!(EMBER_ZCL_STATUS_SUCCESS == status || EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE == status), CHIP_NO_ERROR);
+    return AddResponseOnError(ctx, resp, status);
 }
 
 ScenesServer ScenesServer::mInstance;