diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py
index e6ce1599af74467a38065c9640d16be1a1ff3309_aGdleHQvZnNtb25pdG9yL19faW5pdF9fLnB5..5fa8ac91190e1f5ae879497323710184273abc0d_aGdleHQvZnNtb25pdG9yL19faW5pdF9fLnB5 100644
--- a/hgext/fsmonitor/__init__.py
+++ b/hgext/fsmonitor/__init__.py
@@ -214,5 +214,9 @@
             state.invalidate()
         # experimental config: fsmonitor.verbose
         if ui.configbool(b'fsmonitor', b'verbose'):
-            ui.log(b'fsmonitor', b'Watchman unavailable: %s\n', ex.msg)
+            ui.log(
+                b'fsmonitor',
+                b'Watchman unavailable: %s\n',
+                stringutil.forcebytestr(ex.msg),
+            )
     else:
@@ -218,5 +222,9 @@
     else:
-        ui.log(b'fsmonitor', b'Watchman exception: %s\n', ex)
+        ui.log(
+            b'fsmonitor',
+            b'Watchman exception: %s\n',
+            stringutil.forcebytestr(ex),
+        )
 
 
 def _hashignore(ignore):