diff --git a/functional/test_instance_group.py b/functional/test_instance_group.py
index c76e67a..84c63cd 100644
--- a/functional/test_instance_group.py
+++ b/functional/test_instance_group.py
@@ -270,6 +270,8 @@
         nested_ident = self.assert_resource_is_a_stack(stack_identifier,
                                                        'JobServerGroup')
         self._assert_instance_state(nested_ident, 2, 0)
+        initial_list = [res.resource_name
+                        for res in self.client.resources.list(nested_ident)]
 
         env['parameters']['size'] = 3
         files2 = {'provider.yaml': self.bad_instance_template}
@@ -283,10 +285,19 @@
         )
         self._wait_for_stack_status(stack_identifier, 'UPDATE_FAILED')
 
-        # assert that there are 3 bad instances
         nested_ident = self.assert_resource_is_a_stack(stack_identifier,
                                                        'JobServerGroup')
-        self._assert_instance_state(nested_ident, 0, 3)
+        # assert that there are 3 bad instances
+        # 2 resources should be in update failed, and one create failed.
+        for res in self.client.resources.list(nested_ident):
+            if res.resource_name in initial_list:
+                self._wait_for_resource_status(nested_ident,
+                                               res.resource_name,
+                                               'UPDATE_FAILED')
+            else:
+                self._wait_for_resource_status(nested_ident,
+                                               res.resource_name,
+                                               'CREATE_FAILED')
 
 
 class InstanceGroupUpdatePolicyTest(InstanceGroupTest):
