diff --git a/rbac/management/principal/cleaner.py b/rbac/management/principal/cleaner.py
index 98e6ccde2..620af7446 100644
--- a/rbac/management/principal/cleaner.py
+++ b/rbac/management/principal/cleaner.py
@@ -208,7 +208,8 @@ def process_umb_event(frame, umb_client: Stomp, bootstrap_service: TenantBootstr
return False
try:
- data_dict = xmltodict.parse(frame.body)
+ body = frame.body.decode("utf-8", errors="ignore")
+ data_dict = xmltodict.parse(body)
canonical_message = data_dict.get("CanonicalMessage")
user = retrieve_user_info(canonical_message)
diff --git a/tests/management/principal/test_cleaner.py b/tests/management/principal/test_cleaner.py
index 5b36efa98..e888ada57 100644
--- a/tests/management/principal/test_cleaner.py
+++ b/tests/management/principal/test_cleaner.py
@@ -229,7 +229,7 @@ def test_principal_cleanup_principal_error(self, mock_request):
b'