diff --git a/ArmnnPreparedModel_1_3.cpp b/ArmnnPreparedModel_1_3.cpp
index 155f8b2..86c0494 100644
--- a/ArmnnPreparedModel_1_3.cpp
+++ b/ArmnnPreparedModel_1_3.cpp
@@ -234,6 +234,7 @@
         const V1_3::Request& request,
         MeasureTiming measureTiming,
         const V1_3::OptionalTimePoint&,
+        const V1_3::OptionalTimeoutDuration&,
         const sp<V1_3::IExecutionCallback>& callback)
 {
     if (callback.get() == nullptr)
@@ -259,6 +260,7 @@
                                                                MeasureTiming,
                                                                const OptionalTimePoint&,
                                                                const OptionalTimeoutDuration&,
+                                                               const OptionalTimeoutDuration&,
                                                                executeFenced_cb cb)
 {
     cb(ErrorStatus::DEVICE_UNAVAILABLE, hidl_handle(nullptr), nullptr);
@@ -449,10 +451,12 @@
 }
 
 template<typename HalVersion>
-Return<void>  ArmnnPreparedModel_1_3<HalVersion>::executeSynchronously_1_3(const V1_3::Request& request,
-                                                                           MeasureTiming measureTiming,
-                                                                           const V1_3::OptionalTimePoint& deadline,
-                                                                           executeSynchronously_1_3_cb cb)
+Return<void>  ArmnnPreparedModel_1_3<HalVersion>::executeSynchronously_1_3(
+        const V1_3::Request& request,
+        MeasureTiming measureTiming,
+        const V1_3::OptionalTimePoint& deadline,
+        const V1_3::OptionalTimeoutDuration& loopTimeoutDuration,
+        executeSynchronously_1_3_cb cb)
 {
     ALOGV("ArmnnPreparedModel_1_3::executeSynchronously_1_3(): %s", GetModelSummary(m_Model).c_str());
     m_RequestCount++;
@@ -470,6 +474,13 @@
         return Void();
     }
 
+    if (loopTimeoutDuration.getDiscriminator() != OptionalTimeoutDuration::hidl_discriminator::none)
+     {
+        ALOGE("ArmnnPreparedModel_1_3::executeSynchronously_1_3 invalid request model");
+        cb(V1_3::ErrorStatus::INVALID_ARGUMENT, {}, g_NoTiming);
+        return Void();
+    }
+
     auto cbWrapper = [cb](V1_3::ErrorStatus errorStatus,
                           std::vector<OutputShape> outputShapes,
                           const Timing& timing,
