diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.cpp b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
index 3a98d9e..f098c8c 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
@@ -49,14 +49,11 @@
 
     if ((!offloadUri().empty()) && (phosphor::dump::isHostRunning()))
     {
-        log<level::ERR>(
-            fmt::format("Dump offload is in progress, cannot delete "
-                        "dump, id({}) srcdumpid({})",
-                        dumpId, srcDumpID)
-                .c_str());
-        elog<sdbusplus::xyz::openbmc_project::Common::Error::NotAllowed>(
-            xyz::openbmc_project::Common::NotAllowed::REASON(
-                "Dump offload is in progress"));
+        log<level::ERR>(fmt::format("Dump offload in progress, cannot delete "
+                                    "dump, id({}) srcdumpid({})",
+                                    dumpId, srcDumpID)
+                            .c_str());
+        elog<sdbusplus::xyz::openbmc_project::Common::Error::Unavailable>();
     }
 
     log<level::INFO>(fmt::format("Resource dump delete id({}) srcdumpid({})",
diff --git a/dump-extensions/openpower-dumps/system_dump_entry.cpp b/dump-extensions/openpower-dumps/system_dump_entry.cpp
index 63a23fc..dae53e4 100644
--- a/dump-extensions/openpower-dumps/system_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/system_dump_entry.cpp
@@ -38,17 +38,6 @@
     auto srcDumpID = sourceDumpId();
     auto dumpId = id;
 
-    if ((!offloadUri().empty()) && (phosphor::dump::isHostRunning()))
-    {
-        log<level::ERR>(
-            fmt::format("Dump offload is in progress id({}) srcdumpid({})",
-                        dumpId, srcDumpID)
-                .c_str());
-        elog<sdbusplus::xyz::openbmc_project::Common::Error::NotAllowed>(
-            xyz::openbmc_project::Common::NotAllowed::REASON(
-                "Dump offload is in progress"));
-    }
-
     // Skip the system dump delete if the dump is in progress
     // and in memory preserving reboot path
     if ((openpower::dump::util::isInMpReboot()) &&
@@ -62,6 +51,15 @@
         return;
     }
 
+    if ((!offloadUri().empty()) && (phosphor::dump::isHostRunning()))
+    {
+        log<level::ERR>(
+            fmt::format("Dump offload in progress id({}) srcdumpid({})", dumpId,
+                        srcDumpID)
+                .c_str());
+        elog<sdbusplus::xyz::openbmc_project::Common::Error::Unavailable>();
+    }
+
     log<level::INFO>(fmt::format("System dump delete id({}) srcdumpid({})",
                                  dumpId, srcDumpID)
                          .c_str());
