diff --git a/dcmihandler.cpp b/dcmihandler.cpp
index 7a4db9f..e9cc39a 100644
--- a/dcmihandler.cpp
+++ b/dcmihandler.cpp
@@ -65,6 +65,13 @@
     {0x40, "inlet"}, {0x37, "inlet"},     {0x41, "cpu"},
     {0x03, "cpu"},   {0x42, "baseboard"}, {0x07, "baseboard"}};
 
+bool isDCMIPowerMgmtSupported()
+{
+    auto data = parseJSONConfig(gDCMICapabilitiesConfig);
+
+    return (gDCMIPowerMgmtSupported == data.value(gDCMIPowerMgmtCapability, 0));
+}
+
 uint32_t getPcap(sdbusplus::bus::bus& bus)
 {
     auto settingService = ipmi::getService(bus, PCAP_INTERFACE, PCAP_PATH);
@@ -298,6 +305,13 @@
                          ipmi_request_t request, ipmi_response_t response,
                          ipmi_data_len_t data_len, ipmi_context_t context)
 {
+    if (!dcmi::isDCMIPowerMgmtSupported())
+    {
+        *data_len = 0;
+        log<level::ERR>("DCMI Power management is unsupported!");
+        return IPMI_CC_INVALID;
+    }
+
     auto requestData =
         reinterpret_cast<const dcmi::GetPowerLimitRequest*>(request);
     std::vector<uint8_t> outPayload(sizeof(dcmi::GetPowerLimitResponse));
@@ -359,6 +373,13 @@
                          ipmi_request_t request, ipmi_response_t response,
                          ipmi_data_len_t data_len, ipmi_context_t context)
 {
+    if (!dcmi::isDCMIPowerMgmtSupported())
+    {
+        *data_len = 0;
+        log<level::ERR>("DCMI Power management is unsupported!");
+        return IPMI_CC_INVALID;
+    }
+
     auto requestData =
         reinterpret_cast<const dcmi::SetPowerLimitRequest*>(request);
     std::vector<uint8_t> outPayload(sizeof(dcmi::SetPowerLimitResponse));
@@ -398,6 +419,13 @@
                            ipmi_request_t request, ipmi_response_t response,
                            ipmi_data_len_t data_len, ipmi_context_t context)
 {
+    if (!dcmi::isDCMIPowerMgmtSupported())
+    {
+        *data_len = 0;
+        log<level::ERR>("DCMI Power management is unsupported!");
+        return IPMI_CC_INVALID;
+    }
+
     auto requestData =
         reinterpret_cast<const dcmi::ApplyPowerLimitRequest*>(request);
     std::vector<uint8_t> outPayload(sizeof(dcmi::ApplyPowerLimitResponse));
@@ -1220,6 +1248,13 @@
                            ipmi_request_t request, ipmi_response_t response,
                            ipmi_data_len_t data_len, ipmi_context_t context)
 {
+    if (!dcmi::isDCMIPowerMgmtSupported())
+    {
+        *data_len = 0;
+        log<level::ERR>("DCMI Power management is unsupported!");
+        return IPMI_CC_INVALID;
+    }
+
     ipmi_ret_t rc = IPMI_CC_OK;
     auto requestData =
         reinterpret_cast<const dcmi::GetPowerReadingRequest*>(request);
