diff --git a/tests/test_webservice.py b/tests/test_webservice.py
index 65ac0546c5dc1343d8533a2c959d71079bb948cb..29dbfb2ab6f6ddf8f89432391c57682daa2e5211 100644
--- a/tests/test_webservice.py
+++ b/tests/test_webservice.py
@@ -214,3 +214,10 @@ async def test_get_slurm_nice_fails(fp):
 
     assert await get_slurm_nice('upex-higher', 'SPB', '202201') == 0
 
+    # exfel is special
+    fp.register(
+        ['squeue', '-h', '-o', '%.20j', '-p', 'exfel', '--me'],
+        stdout='\n'.join([f'correct_SPB_{i}' for i in range(10)]),
+        returncode=0)
+
+    assert await get_slurm_nice('exfel', 'SPB', '202201') == 0
diff --git a/webservice/webservice.py b/webservice/webservice.py
index 983d33e58b8a00b2aca4bb8cfba86c9d1494fa0e..21e28df6a323525f19340e4be611e8c46e854dc8 100644
--- a/webservice/webservice.py
+++ b/webservice/webservice.py
@@ -694,6 +694,9 @@ async def get_slurm_nice(partition: str, instrument: str,
        :return: Nice value to be passed to sbatch --nice
     """
 
+    if partition == 'exfel':
+        return 0  # Don't apply degressive priority on exfel.
+
     # List all names for jobs running in the specified partition.
     returncode, job_names = await run_proc_async(
         ['squeue', '-h', '-o', '%.20j', '-p', partition, '--me'])