diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 935dc6d7ff6fd9be71cbd018579fb9c5ca4a8041..51b24f41e592e08e83739a34d680e24d38d71a4f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,6 +64,14 @@ stages:
 .default-job-settings: &default-job-settings-lint
   interruptible: true
   allow_failure: false
+  retry:
+    max: 2
+    when:
+      - unknown_failure
+      - api_failure
+      - stuck_or_timeout_failure
+      - runner_system_failure
+      - scheduler_failure
   variables:
     _TARGET_PHP: "8.2"
     _TARGET_DB: "sqlite-3"
diff --git a/.gitlab-ci/pipeline.yml b/.gitlab-ci/pipeline.yml
index f8f2afb4fdc1ed2f7c08004d20e71a17980a839b..08952b0041d204f8fb7eff80e9499b8973468163 100644
--- a/.gitlab-ci/pipeline.yml
+++ b/.gitlab-ci/pipeline.yml
@@ -23,6 +23,14 @@ stages:
 .default-job-settings: &default-job-settings
   interruptible: true
   allow_failure: false
+  retry:
+    max: 2
+    when:
+      - unknown_failure
+      - api_failure
+      - stuck_or_timeout_failure
+      - runner_system_failure
+      - scheduler_failure
   image:
     name: $_CONFIG_DOCKERHUB_ROOT/php-$_TARGET_PHP-apache:production
   rules: