diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 95c74ee..e951263 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -934,8 +934,8 @@
             // The task timer is set to max time limit within which the
             // requested dump will be collected.
             task->startTimer(std::chrono::minutes(6));
-            task->populateResp(asyncResp->res);
             task->payload.emplace(payload);
+            task->populateResp(asyncResp->res);
         },
         "xyz.openbmc_project.Dump.Manager", createdObjPath,
         "org.freedesktop.DBus.Introspectable", "Introspect");
@@ -3116,8 +3116,8 @@
                                 taskMatchStr);
 
                         task->startTimer(std::chrono::minutes(5));
-                        task->populateResp(asyncResp->res);
                         task->payload.emplace(std::move(payload));
+                        task->populateResp(asyncResp->res);
                     };
 
                 dbus::utility::async_method_call(
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index 4972c7d..0e29cae 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -190,6 +190,27 @@
                           taskMonitor.buffer());
             res.addHeader(boost::beast::http::field::retry_after,
                           std::to_string(retryAfterSeconds));
+            res.jsonValue["Name"] = "Task " + strIdx;
+            res.jsonValue["StartTime"] =
+                redfish::time_utils::getDateTimeStdtime(startTime);
+            res.jsonValue["Messages"] = messages;
+            res.jsonValue["TaskMonitor"] = taskMonitor;
+            res.jsonValue["HidePayload"] = !payload;
+            if (payload)
+            {
+                const task::Payload& p = *payload;
+                nlohmann::json::object_t payloadObj;
+                payloadObj["TargetUri"] = p.targetUri;
+                payloadObj["HttpOperation"] = p.httpOperation;
+                payloadObj["HttpHeaders"] = p.httpHeaders;
+                if (p.jsonBody.is_object())
+                {
+                    payloadObj["JsonBody"] = p.jsonBody.dump(
+                        2, ' ', true, nlohmann::json::error_handler_t::replace);
+                }
+                res.jsonValue["Payload"] = std::move(payloadObj);
+            }
+            res.jsonValue["PercentComplete"] = percentComplete;
         }
         else if (!gave204)
         {
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 33875fc..0ac36b5 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -253,8 +253,8 @@
         "member='PropertiesChanged',path='" +
             objPath.str + "'");
     task->startTimer(std::chrono::minutes(5));
-    task->populateResp(asyncResp->res);
     task->payload.emplace(std::move(payload));
+    task->populateResp(asyncResp->res);
 }
 
 // Note that asyncResp can be either a valid pointer or nullptr. If nullptr
