diff --git a/roles/ipaserver/library/ipaserver_test.py b/roles/ipaserver/library/ipaserver_test.py
index 34eb09ae2d2a5a43290167b348e3c7aa24f7dc96..7d38684734cc6e9a208142cf55bf548943b01cc2 100644
--- a/roles/ipaserver/library/ipaserver_test.py
+++ b/roles/ipaserver/library/ipaserver_test.py
@@ -256,14 +256,12 @@ def main():
                 msg="File %s does not exist." % options.dirsrv_config_file)
 
     # domain_name
-    if (options.setup_dns and not options.allow_zone_overlap):
+    if (options.setup_dns and not options.allow_zone_overlap and \
+        options.domain_name is not None):
         try:
             check_zone_overlap(options.domain_name, False)
         except ValueError as e:
-            if "already exists in DNS" in str(e):
-                ansible_module.log(str(e))
-                ansible_module.exit_json(changed=False, dns_zone_exists=True)
-            raise
+            ansible_module.fail_json(str(e))
 
     # dm_password
     with redirect_stdout(ansible_log):
diff --git a/roles/ipaserver/tasks/install.yml b/roles/ipaserver/tasks/install.yml
index c0a9f97b960ab2c9cf3f3b0e474e2aa653f27b01..c995b4f87f5f454a5635b18dddbe6aed7afe4ac4 100644
--- a/roles/ipaserver/tasks/install.yml
+++ b/roles/ipaserver/tasks/install.yml
@@ -92,7 +92,7 @@
   register: result_ipaserver_test
 
 - meta: end_play
-  when: not result_ipaserver_test.changed and (result_ipaserver_test.dns_zone_exists is defined or result_ipaserver_test.client_already_configured is defined or result_ipaserver_test.server_already_configured is defined)
+  when: not result_ipaserver_test.changed and (result_ipaserver_test.client_already_configured is defined or result_ipaserver_test.server_already_configured is defined)
 
 - block: