diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py
index 545b1cda77..4c2aa1db09 100644
--- a/openstackclient/identity/v3/user.py
+++ b/openstackclient/identity/v3/user.py
@@ -612,10 +612,12 @@ class SetUser(command.Command):
         if parsed_args.description:
             kwargs['description'] = parsed_args.description
         if parsed_args.project:
-            project_domain_id = identity_client.find_domain(
-                name_or_id=parsed_args.project_domain,
-                ignore_missing=False,
-            ).id
+            project_domain_id = None
+            if parsed_args.project_domain:
+                project_domain_id = identity_client.find_domain(
+                    name_or_id=parsed_args.project_domain,
+                    ignore_missing=False,
+                ).id
             project_id = identity_client.find_project(
                 name_or_id=parsed_args.project,
                 ignore_missing=False,
diff --git a/openstackclient/tests/unit/identity/v3/test_user.py b/openstackclient/tests/unit/identity/v3/test_user.py
index 7f4c2497ec..91e8b45c3e 100644
--- a/openstackclient/tests/unit/identity/v3/test_user.py
+++ b/openstackclient/tests/unit/identity/v3/test_user.py
@@ -1206,6 +1206,17 @@ class TestUserSet(identity_fakes.TestIdentityv3):
         self.identity_sdk_client.update_user.assert_called_with(
             user=self.user, **kwargs
         )
+        self.identity_sdk_client.find_domain.assert_not_called()
+
+        # Set expected values
+        kwargs = {
+            'ignore_missing': False,
+            'domain_id': None,
+        }
+        self.identity_sdk_client.find_project.assert_called_once_with(
+            name_or_id=self.project.id, **kwargs
+        )
+
         self.assertIsNone(result)
 
     def test_user_set_project_domain(self):
@@ -1238,6 +1249,11 @@ class TestUserSet(identity_fakes.TestIdentityv3):
         self.identity_sdk_client.update_user.assert_called_with(
             user=self.user, **kwargs
         )
+
+        self.identity_sdk_client.find_domain.assert_called_once_with(
+            name_or_id=self.project.domain_id, ignore_missing=False
+        )
+
         self.assertIsNone(result)
 
     def test_user_set_enable(self):