diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 63d4edd892..96d70080d3 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1610,7 +1610,6 @@ class RunQueue:
 
         if self.state == RunQueueState.SCENE_INIT:
             self.start_worker(self.rqexe)
-            self.rqdata.init_progress_reporter.finish()
 
             # If we don't have any setscene functions, skip execution
             if not self.rqdata.runq_setscene_tids:
@@ -1948,6 +1947,10 @@ class RunQueueExecute:
         self.sqdata = SQData()
         build_scenequeue_data(self.sqdata, self.rqdata, self)
 
+        # Finish the "Initialising tasks" progress bar before
+        # update_scenequeue_data() creates another one.
+        self.rqdata.init_progress_reporter.finish()
+
         update_scenequeue_data(self.sqdata.sq_revdeps, self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=True)
 
         # Compute a list of 'stale' sstate tasks where the current hash does not match the one
