diff --git a/manifest-integration-jobs.yml b/manifest-integration-jobs.yml
index 72c94b9533be5217a0faa6c0d706201eb48b1a41..84948db7de95f9745b587d61842cbd6ef1b36deb 100644
--- a/manifest-integration-jobs.yml
+++ b/manifest-integration-jobs.yml
@@ -64,7 +64,7 @@ build:
 report-image-diff:
   extends: .infrastructure
   stage: manifest-integration-jobs
-  timeout: 1h
+  timeout: 8h
   needs: ["build"]
   rules:
     # Do not run build if the "skip build" label is set on the merge request
diff --git a/scripts/fullbuildpipeline.py b/scripts/fullbuildpipeline.py
index b82d75017f598bf61b5434361e889940123b7172..e7d47bcb4517fbab100e1a1bc4634adba6fae8a4 100755
--- a/scripts/fullbuildpipeline.py
+++ b/scripts/fullbuildpipeline.py
@@ -61,8 +61,8 @@ class FullBuildPipeline:
             the value is a tuple of downstream jobs.
         """
 
-        timeout = 3000  # 50 min
-        check_interval = 30
+        timeout = 28800  # 8 hours
+        check_interval = 60
 
         not_rdy_status = ["created", "pending", "running"]
         if self.upstream_pipeline.status in not_rdy_status:
@@ -77,6 +77,7 @@ class FullBuildPipeline:
             timeout -= check_interval
             if timeout < 0:
                 sys.exit("timeout")
+            self.upstream_pipeline = self.__get_upstream_pipeline()
 
         ret = {}
         for bridge in self.upstream_pipeline.bridges.list():