diff --git a/scripts/writesensor.mako.cpp b/scripts/writesensor.mako.cpp
index 41f9d60..4355801 100644
--- a/scripts/writesensor.mako.cpp
+++ b/scripts/writesensor.mako.cpp
@@ -5,7 +5,7 @@
 <%
 from collections import defaultdict
 readingTypes = { 'reading': 'cmdData.reading',
-                 'assertion': '0',
+                 'assertion': '((cmdData.assertOffset8_14 << 8)|cmdData.assertOffset0_7)',
                  'eventdata1': 'cmdData.eventData1',
                  'eventdata2': 'cmdData.eventData2',
                  'eventdata3': 'cmdData.eventData3'}
diff --git a/sensordatahandler.cpp b/sensordatahandler.cpp
index 6c7b9ac..7c4cd3c 100644
--- a/sensordatahandler.cpp
+++ b/sensordatahandler.cpp
@@ -40,9 +40,9 @@
     auto mapperResponseMsg = bus.call(mapperCall);
     if (mapperResponseMsg.is_method_error())
     {
-        std::string err = "Error in mapper GetSubTree "
-                          "Interface: " + interface;
-        log<level::ERR>(err.c_str());
+        log<level::ERR>("Mapper GetSubTree failed",
+                        entry("PATH=%s", path),
+                        entry("INTERFACE=%s", interface));
         elog<InternalFailure>();
     }
 
@@ -50,10 +50,9 @@
     mapperResponseMsg.read(mapperResponse);
     if (mapperResponse.empty())
     {
-        std::string err = "Invalid response from mapper "
-                          "Command: GetSubTree "
-                          "Interface:" + interface;
-        log<level::ERR>(err.c_str());
+        log<level::ERR>("Invalid mapper response",
+                        entry("PATH=%s", path),
+                        entry("INTERFACE=%s", interface));
         elog<InternalFailure>();
     }
 
@@ -66,10 +65,9 @@
     const auto& iter = mapperResponse.find(path);
     if (iter == mapperResponse.end())
     {
-        std::string err = "Error in finding sensor dbus"
-                          "Command: GetSubTree "
-                          "Interface:" + interface;
-        log<level::ERR>(err.c_str());
+        log<level::ERR>("Coudn't find d-bus path",
+                        entry("PATH=%s", path),
+                        entry("INTERFACE=%s", interface));
         elog<InternalFailure>();
     }
     return std::make_pair(iter->first, iter->second.begin()->first);
diff --git a/sensorhandler.cpp b/sensorhandler.cpp
index a4cfe34..eac4215 100644
--- a/sensorhandler.cpp
+++ b/sensorhandler.cpp
@@ -7,15 +7,20 @@
 #include <systemd/sd-bus.h>
 #include "host-ipmid/ipmid-api.h"
 #include <phosphor-logging/log.hpp>
+#include <phosphor-logging/elog-errors.hpp>
 #include "ipmid.hpp"
 #include "sensorhandler.h"
 #include "types.hpp"
 #include "utils.hpp"
+#include "xyz/openbmc_project/Common/error.hpp"
+
 
 extern int updateSensorRecordFromSSRAESC(const void *);
 extern sd_bus *bus;
 extern const ipmi::sensor::IdInfoMap sensors;
 using namespace phosphor::logging;
+using InternalFailure =
+    sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure;
 
 void register_netfn_sen_functions()   __attribute__((constructor));
 
@@ -418,7 +423,18 @@
         return IPMI_CC_SENSOR_INVALID;
     }
 
-    return iter->second.updateFunc(cmdData, iter->second);
+    try
+    {
+        return iter->second.updateFunc(cmdData, iter->second);
+    }
+    catch (InternalFailure& e)
+    {
+         log<level::ERR>("Set sensor failed",
+                         entry("SENSOR_NUM=%d", cmdData.number));
+         commit<InternalFailure>();
+    }
+
+    return IPMI_CC_UNSPECIFIED_ERROR;
 }
 
 ipmi_ret_t ipmi_sen_set_sensor(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
