diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 8fc9129..6d99313 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -399,17 +399,32 @@
                                     if ((propertyName == "PartNumber") ||
                                         (propertyName == "SerialNumber") ||
                                         (propertyName == "Manufacturer") ||
-                                        (propertyName == "Model"))
+                                        (propertyName == "Model") ||
+                                        (propertyName == "SparePartNumber"))
                                     {
                                         const std::string* value =
                                             std::get_if<std::string>(
                                                 &property.second);
-                                        if (value != nullptr)
+                                        if (value == nullptr)
                                         {
-                                            asyncResp->res
-                                                .jsonValue[propertyName] =
-                                                *value;
+                                            BMCWEB_LOG_ERROR
+                                                << "Null value returned for "
+                                                << propertyName;
+                                            messages::internalError(
+                                                asyncResp->res);
+                                            return;
                                         }
+                                        // SparePartNumber is optional on D-Bus
+                                        // so skip if it is empty
+                                        if (propertyName == "SparePartNumber")
+                                        {
+                                            if (*value == "")
+                                            {
+                                                continue;
+                                            }
+                                        }
+                                        asyncResp->res.jsonValue[propertyName] =
+                                            *value;
                                     }
                                 }
                                 asyncResp->res.jsonValue["Name"] = chassisId;
