diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 8cb48a89b9317ccbc25faeedf00ea8e1a1ce4e17..a9a6aae508f739095812fca5d2c41d72f431bf0f 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -1134,8 +1134,9 @@ ORDER BY ~a;"
                          (#:status . ,(string->number status))
                          (#:last-status . ,(and last-status
                                                 (string->number last-status)))
-                         (#:weather . ,(and weather
-                                            (string->number weather)))
+                         (#:weather . ,(if weather
+                                           (string->number weather)
+                                           (build-weather unknown)))
                          (#:priority . ,(string->number priority))
                          (#:max-silent . ,(string->number max-silent))
                          (#:timeout . ,(string->number timeout))
diff --git a/tests/http.scm b/tests/http.scm
index d6a9c6d3d4f3938b3d69bd99721353288bab12dc..b814c4ebab459957f553c355a12950334f7d0f16 100644
--- a/tests/http.scm
+++ b/tests/http.scm
@@ -65,7 +65,7 @@
     (#:system . "x86_64-linux")
     (#:nixname . "fake-1.0")
     (#:buildstatus . 0)
-    (#:weather . #nil)
+    (#:weather . -1)
     (#:busy . 0)
     (#:priority . 0)
     (#:finished . 1)