diff --git a/redfish-core/include/error_messages.hpp b/redfish-core/include/error_messages.hpp
index dcca3aa..6064f77 100644
--- a/redfish-core/include/error_messages.hpp
+++ b/redfish-core/include/error_messages.hpp
@@ -960,20 +960,6 @@
 void invalidUpload(crow::Response& res, const std::string& arg1,
                    const std::string& arg2);
 
-/**
- * @brief Formats MutualExclusiveProperties message into JSON
- * Message body: "The properties <arg1> and <arg2> are mutually exclusive."
- *
- * @param[in] arg1 Parameter of message that will replace %1 in its body.
- * @param[in] arg2 Parameter of message that will replace %2 in its body.
- *
- * @returns Message MutualExclusiveProperties formatted to JSON */
-nlohmann::json mutualExclusiveProperties(const std::string& arg1,
-                                         const std::string& arg2);
-
-void mutualExclusiveProperties(crow::Response& res, const std::string& arg1,
-                               const std::string& arg2);
-
 } // namespace messages
 
 } // namespace redfish
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index 7359a82..6088758 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -239,8 +239,8 @@
                 {
                     if (!regPrefixes->empty() && !msgIds->empty())
                     {
-                        messages::mutualExclusiveProperties(
-                            asyncResp->res, "RegistryPrefixes", "MessageIds");
+                        messages::propertyValueConflict(
+                            asyncResp->res, "MessageIds", "RegistryPrefixes");
                         return;
                     }
                 }
diff --git a/redfish-core/src/error_messages.cpp b/redfish-core/src/error_messages.cpp
index 599eeae..5b5b696 100644
--- a/redfish-core/src/error_messages.cpp
+++ b/redfish-core/src/error_messages.cpp
@@ -2150,35 +2150,6 @@
         {"Resolution", "None."}};
 }
 
-/**
- * @internal
- * @brief Formats MutualExclusiveProperties into JSON
- *
- * See header file for more information
- * @endinternal
- */
-nlohmann::json mutualExclusiveProperties(const std::string& arg1,
-                                         const std::string& arg2)
-{
-    return nlohmann::json{
-        {"@odata.type", "#Message.v1_1_1.Message"},
-        {"MessageId", "Base.1.5.0.MutualExclusiveProperties"},
-        {"Message", "The properties " + arg1 + " and " + arg2 +
-                        " are mutually exclusive."},
-        {"MessageArgs", {arg1, arg2}},
-        {"MessageSeverity", "Warning"},
-        {"Resolution",
-         "Ensure that the request body doesn't contain mutually exclusive "
-         "properties and resubmit the request."}};
-}
-
-void mutualExclusiveProperties(crow::Response& res, const std::string& arg1,
-                               const std::string& arg2)
-{
-    res.result(boost::beast::http::status::bad_request);
-    addMessageToErrorJson(res.jsonValue, mutualExclusiveProperties(arg1, arg2));
-}
-
 } // namespace messages
 
 } // namespace redfish
