diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml
index 8dc5db98aa2a339c6e04ee4bac1c0c0444b96cea..27d53063c3911c71379833810e0ecf905a38285a 100644
--- a/.docker/docker-compose.yml
+++ b/.docker/docker-compose.yml
@@ -428,7 +428,7 @@ services:
       BROKER_EXCHANGE_NAME: ${BROKER_EXCHANGE_NAME:-dbrepo}
       BROKER_QUEUE_NAME: ${BROKER_QUEUE_NAME:-dbrepo}
       BROKER_HOST: "${BROKER_ENDPOINT:-broker-service}"
-      BROKER_PASSWORD: ${SYSTEM_USERNAME:-admin}
+      BROKER_PASSWORD: ${SYSTEM_PASSWORD:-admin}
       BROKER_PORT: ${BROKER_PORT:-5672}
       BROKER_SERVICE_ENDPOINT: ${BROKER_SERVICE_ENDPOINT:-http://gateway-service/admin/broker}
       BROKER_USERNAME: ${SYSTEM_USERNAME:-admin}
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
index 19e3a1df06cc7e67dae6cd6fdcadd3664abb9ee9..173b3ef95df3f8c233cbc629f9769c0a694aebe9 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
@@ -326,7 +326,7 @@ public class UserEndpoint {
     }
 
     @PutMapping("/{userId}/password")
-    @Transactional
+    @Transactional(rollbackFor = {Exception.class})
     @PreAuthorize("isAuthenticated()")
     @Observed(name = "dbrepo_user_password_modify")
     @Operation(summary = "Update user password",
@@ -367,12 +367,11 @@ public class UserEndpoint {
             AuthServiceConnectionException, UserNotFoundException, DatabaseNotFoundException, DataServiceException,
             DataServiceConnectionException, CredentialsInvalidException {
         log.debug("endpoint modify a user password, userId={}, data.password=(hidden)", userId);
-        User user = userService.findById(userId);
+        final User user = userService.findById(userId);
         if (!user.equals(principal)) {
             log.error("Failed to modify user password: not current user");
             throw new NotAllowedException("Failed to modify user password: not current user");
         }
-        user = userService.findByUsername(principal.getName());
         userService.updatePassword(user, data);
         authenticationService.updatePassword(user, data);
         for (Database database : databaseService.findAllAccess(userId)) {
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
index 7127138fab2a98a3bb769ae2e5720f5b7886371a..eb378290aaf0cec147292a4528efae7e3928811b 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java
@@ -60,5 +60,6 @@ public interface AuthenticationService {
      * @throws AuthServiceException           The auth service responded with unexpected behavior.
      * @throws AuthServiceConnectionException The connection with the auth service could not be established.
      */
-    void updatePassword(User user, UserPasswordDto data) throws AuthServiceException, AuthServiceConnectionException, CredentialsInvalidException;
+    void updatePassword(User user, UserPasswordDto data) throws AuthServiceException, AuthServiceConnectionException,
+            CredentialsInvalidException, UserNotFoundException;
 }
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
index 460845e897c5f1c3c20e235c35d21535b539939d..52aa5048891102ae10494790992076f9375388f5 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java
@@ -43,7 +43,8 @@ public class AuthenticationServiceImpl implements AuthenticationService {
     @Override
     public void delete(User user) throws AuthServiceException, AuthServiceConnectionException, UserNotFoundException,
             CredentialsInvalidException {
-        keycloakGateway.deleteUser(user.getId());
+        final UserDto keycloakUser = findByUsername(user.getUsername());
+        keycloakGateway.deleteUser(keycloakUser.getId());
     }
 
     @Override
@@ -72,8 +73,9 @@ public class AuthenticationServiceImpl implements AuthenticationService {
 
     @Override
     public void updatePassword(User user, UserPasswordDto data) throws AuthServiceException,
-            AuthServiceConnectionException, CredentialsInvalidException {
-        keycloakGateway.updateUserCredentials(user.getId(), data);
+            AuthServiceConnectionException, CredentialsInvalidException, UserNotFoundException {
+        final UserDto keycloakUser = findByUsername(user.getUsername());
+        keycloakGateway.updateUserCredentials(keycloakUser.getId(), data);
     }
 
 }
diff --git a/docker-compose.yml b/docker-compose.yml
index c2b70d33355d34c53af25ef10b47abab5300c56c..c2927c1c651ad8244426595f074a4813884b3cc1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -493,7 +493,7 @@ services:
       BROKER_EXCHANGE_NAME: ${BROKER_EXCHANGE_NAME:-dbrepo}
       BROKER_QUEUE_NAME: ${BROKER_QUEUE_NAME:-dbrepo}
       BROKER_HOST: "${BROKER_ENDPOINT:-broker-service}"
-      BROKER_PASSWORD: ${SYSTEM_USERNAME:-admin}
+      BROKER_PASSWORD: ${SYSTEM_PASSWORD:-admin}
       BROKER_PORT: ${BROKER_PORT:-5672}
       BROKER_SERVICE_ENDPOINT: ${BROKER_SERVICE_ENDPOINT:-http://gateway-service/admin/broker}
       BROKER_USERNAME: ${SYSTEM_USERNAME:-admin}