diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 38007bc..50659d8 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,5 +1,17 @@
 2020-04-02  youenn fablet  <youenn@apple.com>
 
+        Debug crash: ASSERTION FAILED: m_ongoingFetches.contains(task.fetchIdentifier())
+        https://bugs.webkit.org/show_bug.cgi?id=209743
+
+        Reviewed by Darin Adler.
+
+        * http/wpt/service-workers/service-worker-crashing-while-fetching.https-expected.txt: Added.
+        * http/wpt/service-workers/service-worker-crashing-while-fetching.https.html: Added.
+        * http/wpt/service-workers/service-worker-lengthy-worker.js: Added.
+        (fetchTest):
+
+2020-04-02  youenn fablet  <youenn@apple.com>
+
         Remove synchronous termination of service workers
         https://bugs.webkit.org/show_bug.cgi?id=209666
 
diff --git a/LayoutTests/http/wpt/service-workers/service-worker-crashing-while-fetching.https-expected.txt b/LayoutTests/http/wpt/service-workers/service-worker-crashing-while-fetching.https-expected.txt
new file mode 100644
index 0000000..3c103f6
--- /dev/null
+++ b/LayoutTests/http/wpt/service-workers/service-worker-crashing-while-fetching.https-expected.txt
@@ -0,0 +1,7 @@
+CONSOLE MESSAGE: Service Worker context closed
+CONSOLE MESSAGE: Cannot load .
+
+
+PASS Setup worker 
+PASS Service worker process crashes while handling a fetch event 
+
diff --git a/LayoutTests/http/wpt/service-workers/service-worker-crashing-while-fetching.https.html b/LayoutTests/http/wpt/service-workers/service-worker-crashing-while-fetching.https.html
new file mode 100644
index 0000000..41da595
--- /dev/null
+++ b/LayoutTests/http/wpt/service-workers/service-worker-crashing-while-fetching.https.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/routines.js"></script>
+</head>
+<body>
+<script>
+var activeWorker;
+
+promise_test(async (test) => {
+    if (window.testRunner) {
+        testRunner.setUseSeparateServiceWorkerProcess(true);
+        await fetch("").then(() => { }, () => { });
+    }
+
+    var registration = await navigator.serviceWorker.register("service-worker-lengthy-worker.js", { scope : "lengthy-fetch" });
+    activeWorker = registration.active;
+    if (activeWorker)
+        return;
+    activeWorker = registration.installing;
+    return new Promise(resolve => {
+        activeWorker.addEventListener('statechange', () => {
+            if (activeWorker.state === "activated")
+                resolve();
+        });
+    });
+}, "Setup worker");
+
+promise_test(async (test) => {
+    withIframe("lengthy-fetch");
+    // We wait for 1 second for the service worker to get the fetch event and start responding. 
+    await new Promise(resolve => setTimeout(resolve, 1000));
+    if (window.testRunner)
+        testRunner.terminateServiceWorkers();
+    await waitForServiceWorkerNoLongerRunning(activeWorker);
+}, "Service worker process crashes while handling a fetch event");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/http/wpt/service-workers/service-worker-lengthy-worker.js b/LayoutTests/http/wpt/service-workers/service-worker-lengthy-worker.js
new file mode 100644
index 0000000..06d0f74
--- /dev/null
+++ b/LayoutTests/http/wpt/service-workers/service-worker-lengthy-worker.js
@@ -0,0 +1,6 @@
+function fetchTest(event)
+{
+    event.respondWith(fetch("/WebKit/service-workers/resources/lengthy-pass.py?delay=0.5"));
+}
+
+self.addEventListener("fetch", fetchTest);
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index a727d4f..012895a 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,5 +1,20 @@
 2020-04-02  youenn fablet  <youenn@apple.com>
 
+        Debug crash: ASSERTION FAILED: m_ongoingFetches.contains(task.fetchIdentifier())
+        https://bugs.webkit.org/show_bug.cgi?id=209743
+
+        Reviewed by Darin Adler.
+
+        When context gets closed, we make ServiceWorkerFetchTask::m_serviceWorkerConnection null as it no longer
+        needs to send messages and does not need to unregister itself.
+
+        Test: http/wpt/service-workers/service-worker-crashing-while-fetching.https.html
+
+        * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
+        (WebKit::ServiceWorkerFetchTask::contextClosed):
+
+2020-04-02  youenn fablet  <youenn@apple.com>
+
         Remove synchronous termination of service workers
         https://bugs.webkit.org/show_bug.cgi?id=209666
 
diff --git a/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp b/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp
index 5c2e7c0..0faea14 100644
--- a/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp
+++ b/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp
@@ -94,6 +94,7 @@
 void ServiceWorkerFetchTask::contextClosed()
 {
     RELEASE_LOG_IF_ALLOWED("contextClosed: (m_isDone=%d, m_wasHandled=%d)", m_isDone, m_wasHandled);
+    m_serviceWorkerConnection = nullptr;
     if (m_isDone)
         return;
 
