diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 113e1096714aa7fd43d779a983c97380f13de169..7a2d9b08ac06d5cd541aefbc085b215e37e41a97 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,16 @@ All notable changes to this project will be documented in this file.
 The format is based on `Keep a Changelog`_,
 and this project adheres to `Semantic Versioning`_.
 
+Unreleased
+----------
+
+Fixed
+~~~~~
+
+* In case the status code of a response was not in the range between 200 and 299
+  but still indicates that the response should be delivered, e. g. in the case
+  of a redirected request, the service worker served the offline fallback page.
+
 `3.0b1` - 2023-02-27
 --------------------
 
diff --git a/aleksis/core/vite.config.js b/aleksis/core/vite.config.js
index 2b73a5f14dd8096530c7fd64356302cd47943979..604dbdae5410acc61fb5699b9a797c5906ee69de 100644
--- a/aleksis/core/vite.config.js
+++ b/aleksis/core/vite.config.js
@@ -239,7 +239,7 @@ export default defineConfig({
               plugins: [
                 {
                   fetchDidSucceed: async ({ request, response }) => {
-                    if (response.ok) {
+                    if (response.status < 400) {
                       return response;
                     }
                     throw new Error(