diff --git a/swh/model/hypothesis_strategies.py b/swh/model/hypothesis_strategies.py
index 18d46ba1a7f9989c870d3c7892c69f5427048002..3e8198bd42d7bd1d54dc626e35a45159e6032daa 100644
--- a/swh/model/hypothesis_strategies.py
+++ b/swh/model/hypothesis_strategies.py
@@ -234,7 +234,7 @@ revision_metadata = metadata_dicts
 def revisions_d():
     return builds(
         dict,
-        message=binary(),
+        message=optional(binary()),
         synthetic=booleans(),
         author=persons_d(),
         committer=persons_d(),
diff --git a/swh/model/model.py b/swh/model/model.py
index c9ade626039cadaad464305b8aa6998218b93c3d..efb9039bc9565e98845fa1c78de192a98741ef69 100644
--- a/swh/model/model.py
+++ b/swh/model/model.py
@@ -407,7 +407,7 @@ class RevisionType(Enum):
 
 @attr.s(frozen=True)
 class Revision(BaseModel, HashableObject):
-    message = attr.ib(type=bytes, validator=type_validator())
+    message = attr.ib(type=Optional[bytes], validator=type_validator())
     author = attr.ib(type=Person, validator=type_validator())
     committer = attr.ib(type=Person, validator=type_validator())
     date = attr.ib(type=Optional[TimestampWithTimezone], validator=type_validator())