diff --git a/homeassistant/components/unifiprotect/config_flow.py b/homeassistant/components/unifiprotect/config_flow.py
index 1ca030ce48ee9478dda13b64beb2c5c0bc84b900..ec756118eb5b90047ccff20275bb9bb83118376d 100644
--- a/homeassistant/components/unifiprotect/config_flow.py
+++ b/homeassistant/components/unifiprotect/config_flow.py
@@ -295,9 +295,7 @@ class ProtectFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
             # validate login data
             _, errors = await self._async_get_nvr_data(form_data)
             if not errors:
-                self.hass.config_entries.async_update_entry(self.entry, data=form_data)
-                await self.hass.config_entries.async_reload(self.entry.entry_id)
-                return self.async_abort(reason="reauth_successful")
+                return self.async_update_reload_and_abort(self.entry, data=form_data)
 
         self.context["title_placeholders"] = {
             "name": self.entry.title,
diff --git a/tests/components/unifiprotect/test_config_flow.py b/tests/components/unifiprotect/test_config_flow.py
index 854109bee6ded409ae9a643fd5729316adf7aaa2..6af636ef448affc5ea314d392dd7fc3051fd71da 100644
--- a/tests/components/unifiprotect/test_config_flow.py
+++ b/tests/components/unifiprotect/test_config_flow.py
@@ -226,9 +226,10 @@ async def test_form_reauth_auth(hass: HomeAssistant, nvr: NVR) -> None:
             result2["flow_id"],
             {
                 "username": "test-username",
-                "password": "test-password",
+                "password": "new-password",
             },
         )
+        await hass.async_block_till_done()
 
     assert result3["type"] == FlowResultType.ABORT
     assert result3["reason"] == "reauth_successful"