diff --git a/spec/tooling/danger/stable_branch_spec.rb b/spec/tooling/danger/stable_branch_spec.rb
index 6b5c0b8cf2745ec0cef06267df77edc0f20d5cb6..4d86e066c2005017c80e71d75143a6e335a27cd2 100644
--- a/spec/tooling/danger/stable_branch_spec.rb
+++ b/spec/tooling/danger/stable_branch_spec.rb
@@ -177,20 +177,37 @@
         it_behaves_like 'bypassing when flaky test or docs only'
       end
 
-      context 'when no package-and-test job is found' do
+      context 'when no package-and-test bridge is found' do
         let(:pipeline_bridges_response) { nil }
 
         it_behaves_like 'with a failure', described_class::NEEDS_PACKAGE_AND_TEST_MESSAGE
         it_behaves_like 'bypassing when flaky test or docs only'
       end
 
-      context 'when package-and-test job is being created' do
+      context 'when package-and-test bridge is created' do
         let(:pipeline_bridge_state) { 'created' }
 
         it_behaves_like 'with a warning', described_class::WARN_PACKAGE_AND_TEST_MESSAGE
         it_behaves_like 'bypassing when flaky test or docs only'
       end
 
+      context 'when package-and-test bridge has been canceled and no downstream pipeline is generated' do
+        let(:pipeline_bridge_state) { 'canceled' }
+
+        let(:pipeline_bridges_response) do
+          [
+            {
+              'name' => 'e2e:package-and-test',
+              'status' => pipeline_bridge_state,
+              'downstream_pipeline' => nil
+            }
+          ]
+        end
+
+        it_behaves_like 'with a failure', described_class::NEEDS_PACKAGE_AND_TEST_MESSAGE
+        it_behaves_like 'bypassing when flaky test or docs only'
+      end
+
       context 'when package-and-test job is in a non-successful state' do
         let(:package_and_qa_state) { 'running' }
 
diff --git a/tooling/danger/stable_branch.rb b/tooling/danger/stable_branch.rb
index 65086c8485c6b854e7aa2acf43b00c80847487c2..9b4671460960d6d8001ef5b41843872d369dbea7 100644
--- a/tooling/danger/stable_branch.rb
+++ b/tooling/danger/stable_branch.rb
@@ -102,7 +102,7 @@ def package_and_test_bridge_and_pipeline_status
         if bridge['status'] == 'created'
           bridge['status']
         else
-          bridge.fetch('downstream_pipeline').fetch('status')
+          bridge.fetch('downstream_pipeline')&.fetch('status')
         end
       end