diff --git a/src/plugins/intel_gpu/src/graph/impls/common/loop.cpp b/src/plugins/intel_gpu/src/graph/impls/common/loop.cpp index 3ffad79067db9c..bb5650d8cc09fb 100644 --- a/src/plugins/intel_gpu/src/graph/impls/common/loop.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/common/loop.cpp @@ -167,6 +167,9 @@ struct loop_impl : typed_primitive_impl { // read initial execution condition from outer network int64_t execution_condition = 1; if (!primitive->first_execution_condition_id.empty()) { + // Wait for completion of the execution_condition of outer_network + if (outer_network.has_event(primitive->first_execution_condition_id)) + outer_network.get_primitive_event(primitive->first_execution_condition_id)->wait(); memory::ptr first_execution_condition_mem = outer_network.get_primitive(primitive->first_execution_condition_id)->output_memory_ptr(); execution_condition = read_scalar_value(first_execution_condition_mem, stream); }