diff --git a/test/Concurrent.cpp b/test/Concurrent.cpp
index ecf25e1..0694934 100644
--- a/test/Concurrent.cpp
+++ b/test/Concurrent.cpp
@@ -51,12 +51,20 @@
 
     // make the prepared models
     const size_t maxRequests = 5;
+    size_t preparedModelsSize = 0;
     android::sp<V1_0::IPreparedModel> preparedModels[maxRequests];
     for (size_t i = 0; i < maxRequests; ++i)
     {
-        preparedModels[i] = PrepareModel(model, *driver);
+        auto preparedModel = PrepareModel(model, *driver);
+        if (preparedModel.get() != nullptr)
+        {
+            preparedModels[i] = PrepareModel(model, *driver);
+            preparedModelsSize++;
+        }
     }
 
+    BOOST_TEST(maxRequests == preparedModelsSize);
+
     // construct the request data
     DataLocation inloc = {};
     inloc.poolIndex = 0;
