diff --git a/test/int/test_sharding.py b/test/int/test_sharding.py
index e05b7db904fe1bca03f4280ca4286979b2101dc2..eb3c5ac0879a26bbb2db54d0cb349b3d539017f8 100644
--- a/test/int/test_sharding.py
+++ b/test/int/test_sharding.py
@@ -294,3 +294,45 @@ def test_gitlab_763_no_missing_buckets_after_proc_sharding_failure(cluster: Clus
     # All buckets are eventually available to the whole cluster
     for i in cluster.instances:
         Retriable(timeout=10, rps=4).call(check_available_buckets, i, 3000)
+
+
+@pytest.mark.xfail(reason="Not implemented yet")
+def test_expel_blocked_by_bucket_rebalancing(cluster: Cluster):
+    # Need 3 instances for quorum
+    i1, i2, i3 = cluster.deploy(instance_count=3, init_replication_factor=1)
+
+    i1.sql(
+        """ CREATE TABLE somedata (id UNSIGNED PRIMARY KEY, value STRING) DISTRIBUTED BY (id) """
+    )
+
+    original_row_count = 3000
+    values = []
+    for id in range(original_row_count):
+        value = str(id)
+        values.append(f"({id}, '{value}')")
+    values_str = str.join(", ", values)
+    i1.sql(f""" INSERT INTO somedata VALUES {values_str}""")
+
+    # We have 3 replicasets 1 replica each
+    total_row_count = 0
+    for instance in cluster.instances:
+        rows_on_instance = instance.call("box.space.somedata:count")
+        assert rows_on_instance > 0
+        total_row_count += rows_on_instance
+    assert total_row_count == original_row_count
+
+    # Expel one of the instances
+    cluster.expel(i3)
+    Retriable().call(i3.assert_process_dead)
+
+    # We now have 2 replicasets 1 replica each
+    total_row_count = 0
+    for instance in cluster.instances:
+        if instance == i3:
+            continue
+        rows_on_instance = instance.call("box.space.somedata:count")
+        assert rows_on_instance > 0
+        total_row_count += rows_on_instance
+
+    # The buckets must be rebalanced and all of the data still available
+    assert total_row_count == original_row_count