Note that even though review.opendev.org/800304 merged I still get: 2021-08-16 14:13:03.823567 | 5254001b-0a8c-78a9-679c-00000000001e | TASK | Delete heat stack 2021-08-16 14:13:05.393458 | 5254001b-0a8c-78a9-679c-00000000001e | RETRY | Delete heat stack | localhost | 3 retries left 2021-08-16 14:13:11.898565 | 5254001b-0a8c-78a9-679c-00000000001e | RETRY | Delete heat stack | localhost | 2 retries left 2021-08-16 14:13:18.314078 | 5254001b-0a8c-78a9-679c-00000000001e | RETRY | Delete heat stack | localhost | 1 retries left An exception occurred during task execution. To see the full traceback, use -vvv. The error was: keystoneauth1.exceptions.catalog.EndpointNotFound: public endpoint for orchestration service in regionOne region not found 2021-08-16 14:13:24.769580 | 5254001b-0a8c-78a9-679c-00000000001e | FATAL | Delete heat stack | localhost | error={"attempts": 3, "changed": false, "module_stderr": "Traceback (most recent call last):\n File \"\", line 102, in \n File \"\", line 94, in _ansiballz_main\n File \"\", line 40, in invoke_module\n File \"/usr/lib64/python3.6/runpy.py\", line 205, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib64/python3.6/runpy.py\", line 96, in _run_module_code\n mod_name, mod_spec, pkg_name, script_name)\n File \"/usr/lib64/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_openstack.cloud.stack_payload_2dvf1js4/ansible_openstack.cloud.stack_payload.zip/ansible_collections/openstack/cloud/plugins/modules/stack.py\", line 248, in \n File \"/tmp/ansible_openstack.cloud.stack_payload_2dvf1js4/ansible_openstack.cloud.stack_payload.zip/ansible_collections/openstack/cloud/plugins/modules/stack.py\", line 244, in main\n File \"/tmp/ansible_openstack.cloud.stack_payload_2dvf1js4/ansible_openstack.cloud.stack_payload.zip/ansible_collections/openstack/cloud/plugins/module_utils/openstack.py\", line 406, in __call__\n File \"/tmp/ansible_openstack.cloud.stack_payload_2dvf1js4/ansible_openstack.cloud.stack_payload.zip/ansible_collections/openstack/cloud/plugins/modules/stack.py\", line 218, in run\n File \"/usr/lib/python3.6/site-packages/openstack/cloud/_orchestration.py\", line 255, in get_stack\n self, _search_one_stack, name_or_id, filters)\n File \"/usr/lib/python3.6/site-packages/openstack/cloud/_utils.py\", line 198, in _get_entity\n entities = search(name_or_id, filters, **kwargs)\n File \"/usr/lib/python3.6/site-packages/openstack/cloud/_orchestration.py\", line 243, in _search_one_stack\n stack = self.orchestration.find_stack(\n File \"/usr/lib/python3.6/site-packages/openstack/service_description.py\", line 87, in __get__\n proxy = self._make_proxy(instance)\n File \"/usr/lib/python3.6/site-packages/openstack/service_description.py\", line 262, in _make_proxy\n found_version = temp_adapter.get_api_major_version()\n File \"/usr/lib/python3.6/site-packages/keystoneauth1/adapter.py\", line 354, in get_api_major_version\n return self.session.get_api_major_version(auth or self.auth, **kwargs)\n File \"/usr/lib/python3.6/site-packages/keystoneauth1/session.py\", line 1276, in get_api_major_version\n return auth.get_api_major_version(self, **kwargs)\n File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/base.py\", line 500, in get_api_major_version\n data = get_endpoint_data(discover_versions=discover_versions)\n File \"/usr/lib/python3.6/site-packages/keystoneauth1/identity/base.py\", line 279, in get_endpoint_data\n service_name=service_name)\n File \"/usr/lib/python3.6/site-packages/keystoneauth1/access/service_catalog.py\", line 462, in endpoint_data_for\n raise exceptions.EndpointNotFound(msg)\nkeystoneauth1.exceptions.catalog.EndpointNotFound: public endpoint for orchestration service in regionOne region not found\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1} 2021-08-16 14:13:24.770286 | 5254001b-0a8c-78a9-679c-00000000001e | TIMING | Delete heat stack | localhost | 0:00:29.326839 | 20.95s 2021-08-16 14:13:24.775090 | 5254001b-0a8c-78a9-679c-00000000001f | TASK | Notice 2021-08-16 14:13:24.812043 | 5254001b-0a8c-78a9-679c-00000000001f | OK | Notice | localhost | result={ "changed": false, "msg": "The Heat stack for \"overcloud\" was not deleted, depending on the deployment type this may be normal." } 2021-08-16 14:13:24.813250 | 5254001b-0a8c-78a9-679c-00000000001f | TIMING | Notice | localhost | 0:00:29.369808 | 0.04s I get that afterwards we print "this might be okay", but this is a bit hostile for the user. Can't we hide that scary error message when we detect ephemeral heat at play?