diff --git a/tests/functional/check-refs.sh b/tests/functional/check-refs.sh
index 8eb93b48d..590c3fb53 100755
--- a/tests/functional/check-refs.sh
+++ b/tests/functional/check-refs.sh
@@ -61,6 +61,8 @@ if ! isTestOnNixOS; then
 
 fi
 
-# test12 should fail (syntactically invalid).
-expectStderr 1 nix-build -vvv -o "$RESULT" check-refs.nix -A test12 >"$TEST_ROOT/test12.stderr"
-grepQuiet -F "output check for 'lib' contains an illegal reference specifier 'dev', expected store path or output name (one of [lib, out])" < "$TEST_ROOT/test12.stderr"
+if isDaemonNewer "2.28pre20241225"; then
+    # test12 should fail (syntactically invalid).
+    expectStderr 1 nix-build -vvv -o "$RESULT" check-refs.nix -A test12 >"$TEST_ROOT/test12.stderr"
+    grepQuiet -F "output check for 'lib' contains an illegal reference specifier 'dev', expected store path or output name (one of [lib, out])" < "$TEST_ROOT/test12.stderr"
+fi