diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
index 0ac794e0e285cd02bcb8576d0ae30f092abf91e0_bWVyY3VyaWFsL2J1bmRsZTIucHk=..4ab6e7b4fe8ac60873b4eeb3d26a5efd0e38b204_bWVyY3VyaWFsL2J1bmRsZTIucHk= 100644
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -1700,7 +1700,10 @@
     includeobsmarkers = False
     if repo.obsstore:
         remoteversions = obsmarkersversion(bundler.capabilities)
-        if repo.obsstore._version in remoteversions:
+        if not remoteversions:
+            raise error.Abort(_('server has obsolescence markers, but client '
+                                'cannot receive them via stream clone'))
+        elif repo.obsstore._version in remoteversions:
             includeobsmarkers = True
 
     filecount, bytecount, it = streamclone.generatev2(repo, includepats,
diff --git a/tests/test-clone-uncompressed.t b/tests/test-clone-uncompressed.t
index 0ac794e0e285cd02bcb8576d0ae30f092abf91e0_dGVzdHMvdGVzdC1jbG9uZS11bmNvbXByZXNzZWQudA==..4ab6e7b4fe8ac60873b4eeb3d26a5efd0e38b204_dGVzdHMvdGVzdC1jbG9uZS11bmNvbXByZXNzZWQudA== 100644
--- a/tests/test-clone-uncompressed.t
+++ b/tests/test-clone-uncompressed.t
@@ -556,6 +556,12 @@
   $ hg debugobsolete -R with-obsolescence
   50382b884f66690b7045cac93a540cba4d4c906f 0 {c17445101a72edac06facd130d14808dfbd5c7c2} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
 
+  $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution
+  streaming all changes
+  remote: abort: server has obsolescence markers, but client cannot receive them via stream clone
+  abort: pull failed on remote
+  [255]
+
   $ killdaemons.py
 
 #endif