diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 1fe5bb0d10..3ae7516765 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -544,7 +544,7 @@ class CreateServer(command.ShowOne):
                     else:
                         mapping['source_type'] = 'volume'
                     mapping['destination_type'] = 'volume'
-                    if len(dev_map) > 2:
+                    if len(dev_map) > 2 and dev_map[2]:
                         mapping['volume_size'] = dev_map[2]
                     if len(dev_map) > 3:
                         mapping['delete_on_termination'] = dev_map[3]
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 7691ef5945..a0716e4c85 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -817,8 +817,7 @@ class TestServerCreate(TestServer):
                 'uuid': real_volume_mapping.split(':', 1)[0],
                 'destination_type': 'volume',
                 'source_type': 'volume',
-                'delete_on_termination': '0',
-                'volume_size': ''
+                'delete_on_termination': '0'
             }],
             nics=[],
             scheduler_hints={},
diff --git a/releasenotes/notes/bug-1677236-7de9d11c3f0fb5ed.yaml b/releasenotes/notes/bug-1677236-7de9d11c3f0fb5ed.yaml
new file mode 100644
index 0000000000..d67cc5c9c8
--- /dev/null
+++ b/releasenotes/notes/bug-1677236-7de9d11c3f0fb5ed.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    Fix creating a server with a block-device-mapping when volume_size
+    is empty.
+    [Bug `1677236 <https://bugs.launchpad.net/bugs/1652827>`_]