diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index a708361..f4bfc7a 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -793,7 +793,7 @@
                               const std::vector<BackendId>& backendPreferences,
                               const IDeviceSpec& deviceSpec,
                               const OptimizerOptions& options,
-                              Optional<std::vector<std::string>&> errMessages)
+                              Optional<std::vector<std::string>&> messages)
 {
     if (backendPreferences.empty())
     {
@@ -837,7 +837,7 @@
         std::stringstream failureMsg;
         failureMsg << "None of the preferred backends " << backendPreferences
                    << " are supported. Current platform provides " << backendSettings.m_SupportedBackends;
-        ReportError(failureMsg.str(), errMessages);
+        ReportError(failureMsg.str(), messages);
         return IOptimizedNetworkPtr(nullptr, &IOptimizedNetwork::Destroy);
     }
 
@@ -852,7 +852,7 @@
                                                              backendSettings,
                                                              firstLayer,
                                                              lastLayer,
-                                                             errMessages);
+                                                             messages);
     if (assignBackendsResult.m_Error)
     {
         // Failed to assign a backend to each layer
@@ -866,7 +866,7 @@
     OptimizationResult backendOptimizationResult = ApplyBackendOptimizations(optNetObjPtr,
                                                                              backendSettings,
                                                                              backends,
-                                                                             errMessages);
+                                                                             messages);
     if (backendOptimizationResult.m_Error)
     {
         // Failed to apply the backend-specific optimizations
@@ -884,7 +884,7 @@
     OptimizationResult strategyResult = SelectTensorHandleStrategy(optGraph,
                                                                    backends,
                                                                    tensorHandleFactoryRegistry,
-                                                                   errMessages);
+                                                                   messages);
     if (strategyResult.m_Error)
     {
         // Failed to apply the backend-specific optimizations
