diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 23b5a3c..36ee8a0 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -1172,60 +1172,8 @@
     updateSvcSimpleUpdate["TransferProtocol@Redfish.AllowableValues"] =
         std::move(allowed);
 
-    // Get the current ApplyTime value
-    sdbusplus::asio::getProperty<std::string>(
-        *crow::connections::systemBus, "xyz.openbmc_project.Settings",
-        "/xyz/openbmc_project/software/apply_time",
-        "xyz.openbmc_project.Software.ApplyTime", "RequestedApplyTime",
-        [asyncResp](const boost::system::error_code& ec,
-                    const std::string& applyTime) {
-        if (ec)
-        {
-            BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
-            messages::internalError(asyncResp->res);
-            return;
-        }
-
-        // Store the ApplyTime Value
-        if (applyTime == "xyz.openbmc_project.Software.ApplyTime."
-                         "RequestedApplyTimes.Immediate")
-        {
-            asyncResp->res.jsonValue["HttpPushUriOptions"]
-                                    ["HttpPushUriApplyTime"]["ApplyTime"] =
-                "Immediate";
-        }
-        else if (applyTime == "xyz.openbmc_project.Software.ApplyTime."
-                              "RequestedApplyTimes.OnReset")
-        {
-            asyncResp->res.jsonValue["HttpPushUriOptions"]
-                                    ["HttpPushUriApplyTime"]["ApplyTime"] =
-                "OnReset";
-        }
-    });
-}
-
-inline void handleUpdateServicePatch(
-    App& app, const crow::Request& req,
-    const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
-{
-    if (!redfish::setUpRedfishRoute(app, req, asyncResp))
-    {
-        return;
-    }
-    BMCWEB_LOG_DEBUG("doPatch...");
-
-    std::optional<std::string> applyTime;
-    if (!json_util::readJsonPatch(
-            req, asyncResp->res,
-            "HttpPushUriOptions/HttpPushUriApplyTime/ApplyTime", applyTime))
-    {
-        return;
-    }
-
-    if (applyTime)
-    {
-        setApplyTime(asyncResp, *applyTime);
-    }
+    asyncResp->res.jsonValue["HttpPushUriOptions"]["HttpPushUriApplyTime"]
+                            ["ApplyTime"] = "Immediate";
 }
 
 inline void handleUpdateServiceFirmwareInventoryCollectionGet(
@@ -1439,11 +1387,6 @@
         .methods(boost::beast::http::verb::get)(
             std::bind_front(handleUpdateServiceGet, std::ref(app)));
 
-    BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/")
-        .privileges(redfish::privileges::patchUpdateService)
-        .methods(boost::beast::http::verb::patch)(
-            std::bind_front(handleUpdateServicePatch, std::ref(app)));
-
     BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/update/")
         .privileges(redfish::privileges::postUpdateService)
         .methods(boost::beast::http::verb::post)(
