diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index 9fbb089d9732c34fd9f8f7df01ee724452c96c05..afe900f39a692e10fc672c0fcfe942f3e73c1df0 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -1001,6 +1001,7 @@
     - <<: *if-merge-request-targeting-stable-branch
       allow_failure: true
     - <<: *if-ruby3-branch
+      allow_failure: true
     - <<: *if-dot-com-gitlab-org-and-security-merge-request-manual-ff-package-and-e2e
       changes: *feature-flag-development-config-patterns
       when: manual
diff --git a/scripts/api/pipeline_failed_jobs.rb b/scripts/api/pipeline_failed_jobs.rb
index 3c29e8842d3ea123a15fc1fdb85b538761c28924..c25567af69844b4d6ee6dde11e622c3e1640cb9e 100644
--- a/scripts/api/pipeline_failed_jobs.rb
+++ b/scripts/api/pipeline_failed_jobs.rb
@@ -31,6 +31,13 @@ def execute
       failed_jobs << job
     end
 
+    client.pipeline_bridges(project, pipeline_id, scope: 'failed', per_page: 100).auto_paginate do |job|
+      next if exclude_allowed_to_fail_jobs && job.allow_failure
+
+      job.web_url = job.downstream_pipeline.web_url # job.web_url is linking to an invalid page
+      failed_jobs << job
+    end
+
     failed_jobs
   end