diff --git a/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts b/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts
index 5a67a4226ff7d7d4eda4f7d57a69fdca18bd4d72..0e8e8e7f9acc081d300bfb18acb04c4292e7ab17 100644
--- a/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts
+++ b/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts
@@ -13,11 +13,16 @@ export class BenutzerE2EComponent {
   private readonly loeschenCheckbox: string = 'Loschen-checkbox-editor';
   private readonly userCheckbox: string = 'User-checkbox-editor';
   private readonly postCheckbox: string = 'Poststelle-checkbox-editor';
+  private readonly userRolesTable: string = 'User-roles-table';
 
   public getHinzufuegenButton(): Cypress.Chainable<Element> {
     return cy.getTestElement(this.benutzerHinzufuegenButton);
   }
 
+  public getUserRolesTable(): Cypress.Chainable<Element> {
+    return cy.getTestElement(this.userRolesTable);
+  }
+
   public addUser(): void {
     this.getHinzufuegenButton().click();
   }
diff --git a/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts b/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts
index df8ad2a80810e40567c1788ce9d2af63ed96e912..c1d04589ac61fa4b53ac9781ac7f8cb6ca18a130 100644
--- a/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts
+++ b/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts
@@ -1,7 +1,7 @@
-import { BenutzerE2EComponent } from '../../components/benutzer/benutzer.e2e.component';
-import { MainPage } from '../../page-objects/main.po';
-import { beChecked, beEnabled, exist, notBeChecked, notBeEnabled } from '../../support/cypress.util';
-import { loginAsAriane } from '../../support/user-util';
+import { MainPage } from 'apps/admin-e2e/src/page-objects/main.po';
+import { BenutzerE2EComponent } from '../../../components/benutzer/benutzer.e2e.component';
+import { beChecked, beEnabled, exist, notBeChecked, notBeEnabled } from '../../../support/cypress.util';
+import { loginAsAriane } from '../../../support/user-util';
 
 const mainPage: MainPage = new MainPage();
 const benutzerPage: BenutzerE2EComponent = new BenutzerE2EComponent();
@@ -25,6 +25,10 @@ describe('Benutzer und Rollen', () => {
     exist(benutzerPage.getHinzufuegenButton());
   });
 
+  it('should show table with users and roles', () => {
+    exist(benutzerPage.getUserRolesTable());
+  });
+
   it('should show users and attributes in table', () => {
     exist(benutzerPage.getUserEntry('ariane'));
     benutzerPage.stringExistsInUserEntry(role1, 'dorothea');
diff --git a/alfa-client/apps/alfa-e2e/cypress.config.json b/alfa-client/apps/alfa-e2e/cypress.config.json
index 10160a6f1a1a224da71dcdc3671381d635fed8b9..4368e301cc77905eaf8ef585f7893173713dccad 100644
--- a/alfa-client/apps/alfa-e2e/cypress.config.json
+++ b/alfa-client/apps/alfa-e2e/cypress.config.json
@@ -28,7 +28,7 @@
   "chromeWebSecurity": false,
   "reporter": "../../node_modules/cypress-mochawesome-reporter",
   "defaultCommandTimeout": 10000,
-  "specPattern": "src/e2e/**/*.cy.{js,jsx,ts,tsx}",
+  "specPattern": ["src/e2e/init-users.cy.ts", "src/e2e/**/*.cy.{js,jsx,ts,tsx}"],
   "supportFile": "src/support/e2e.ts",
   "testIsolation": false,
   "reporterOptions": {
diff --git a/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts b/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts
index caa4da170044134fd7d8439b78e4870fcb43a678..faaeee09f8b06e25d4ae46129171db67f8f73576 100644
--- a/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts
@@ -46,7 +46,7 @@ export class CurrentUserProfileE2EComponent {
     return cy.getTestElement(this.locatorUserIconButton);
   }
 
-  private getLogoutButton() {
+  public getLogoutButton() {
     return cy.getTestElement(this.locatorLogoutButton);
   }
 }
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.cy.ts
index 15b06ef2419bd6df855f8a76a59e8878e543a2ae..08d7553417d836b36ea7b90b4770ebbe5ac7a27f 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.cy.ts
@@ -23,27 +23,13 @@
  */
 import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components';
 import { loginAsEmil } from 'apps/alfa-e2e/src/support/user-util';
-import {
-  buildVorgang,
-  createVorgang,
-  initVorgaenge,
-  objectIds,
-} from 'apps/alfa-e2e/src/support/vorgang-util';
+import { buildVorgang, createVorgang, initVorgaenge, objectIds } from 'apps/alfa-e2e/src/support/vorgang-util';
 import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.component';
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
-import {
-  VorgangE2E,
-  VorgangMessagesE2E,
-  VorgangStatusE2E,
-  vorgangStatusLabelE2E,
-} from '../../../model/vorgang';
-import {
-  MainPage,
-  waitForSpinnerToDisappear,
-  waitforSpinnerToAppear,
-} from '../../../page-objects/main.po';
+import { VorgangE2E, VorgangMessagesE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang';
+import { MainPage, waitForSpinnerToDisappear, waitforSpinnerToAppear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
-import { dropCollections } from '../../../support/cypress-helper';
+import { dropCollections, wait } from '../../../support/cypress-helper';
 import { contains, exist, haveText, notExist } from '../../../support/cypress.util';
 
 describe('Vorgang abschliessen', () => {
@@ -52,8 +38,7 @@ describe('Vorgang abschliessen', () => {
   const snackBar: SnackBarE2EComponent = mainPage.getSnackBar();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent =
-    vorgangPage.getFormularButtons();
+  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons();
 
   const vorgangAbschliessen: VorgangE2E = {
     ...createVorgang(),
@@ -88,10 +73,7 @@ describe('Vorgang abschliessen', () => {
 
     describe('by button', () => {
       it('should have status Beschieden', () => {
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[vorgangAbschliessen.status],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbschliessen.status]);
       });
 
       it('should show snackBar', () => {
@@ -108,10 +90,7 @@ describe('Vorgang abschliessen', () => {
       });
 
       it('should have status Abgeschlossen', () => {
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]);
       });
 
       it('back to vorgang list', () => {
@@ -142,10 +121,7 @@ describe('Vorgang abschliessen', () => {
 
     describe('by icon-button', () => {
       it('should have status Beschieden', () => {
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[vorgangAbschliessenRevoke.status],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbschliessenRevoke.status]);
       });
 
       it('should show snackBar', () => {
@@ -157,6 +133,7 @@ describe('Vorgang abschliessen', () => {
 
       it('should close snackbar on revoke', () => {
         snackBar.getRevokeButton().click();
+        wait(500);
         waitForSpinnerToDisappear();
 
         notExist(snackBar.getMessage());
@@ -165,10 +142,7 @@ describe('Vorgang abschliessen', () => {
       it('should show status Beschieden after progressbar dissapear', () => {
         notExist(vorgangPage.getProgressBar());
 
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
       });
 
       it('back to vorgang list', () => {
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b3e205a4319a4986586efbc7d47687041866d2c7
--- /dev/null
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts
@@ -0,0 +1,55 @@
+import { registerLocaleData } from '@angular/common';
+import localeDe from '@angular/common/locales/de';
+import localeDeExtra from '@angular/common/locales/extra/de';
+import { HeaderE2EComponent } from '../../page-objects/header.po';
+import { MainPage, waitForSpinnerToDisappear } from '../../page-objects/main.po';
+import { login, writeUserIdsIntoFile } from '../../support/cypress-helper';
+import { exist } from '../../support/cypress.util';
+import { areUsersSynced, DatabaseUser } from '../../support/user-util';
+
+registerLocaleData(localeDe, 'de', localeDeExtra);
+
+describe('Init users', () => {
+  const mainPage: MainPage = new MainPage();
+  const header: HeaderE2EComponent = mainPage.getHeader();
+
+  it('should login sabine', () => {
+    syncUser(DatabaseUser.SABINE);
+  });
+
+  it('should login dorothea', () => {
+    syncUser(DatabaseUser.DOROTHEA);
+  });
+  it('should login peter', () => {
+    syncUser(DatabaseUser.PETER);
+  });
+  xit('should login emil', () => {
+    // disabled until password change
+    syncUser(DatabaseUser.EMIL);
+  });
+  it('should login adelheit', () => {
+    syncUser(DatabaseUser.ADELHEIT);
+  });
+  it('should login ludwig', () => {
+    syncUser(DatabaseUser.LUDWIG);
+  });
+  it('should login richard', () => {
+    syncUser(DatabaseUser.RICHARD);
+  });
+
+  it('should write user ids to file', () => {
+    if (!areUsersSynced()) {
+      writeUserIdsIntoFile();
+    }
+  });
+
+  function syncUser(user: DatabaseUser) {
+    if (!areUsersSynced()) {
+      login(user);
+      waitForSpinnerToDisappear();
+      exist(header.getLogo());
+      header.getCurrentUserProfile().getUserIconButton().click();
+      header.getCurrentUserProfile().getLogoutButton().click();
+    }
+  }
+});
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/navigation/navigation.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/navigation/navigation.cy.ts
index 496c3213996ea51b4d00c1982ba0067ebbad34a9..2e07f38a4bd641af2bc4f306bdc371274bbad5a5 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/navigation/navigation.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/navigation/navigation.cy.ts
@@ -37,13 +37,7 @@ import {
   initUsermanagerUsers,
   loginAsSabine,
 } from 'apps/alfa-e2e/src/support/user-util';
-import {
-  buildVorgang,
-  createVorgang,
-  initSearchIndex,
-  initVorgaenge,
-  objectIds,
-} from 'apps/alfa-e2e/src/support/vorgang-util';
+import { buildVorgang, createVorgang, initSearchIndex, initVorgaenge, objectIds } from 'apps/alfa-e2e/src/support/vorgang-util';
 
 describe('Navigation', () => {
   const mainPage: MainPage = new MainPage();
@@ -187,6 +181,6 @@ describe('Navigation', () => {
   });
 
   function doSearch(searchString: string): void {
-    enterWith(vorgangSearch.getInput(), searchString);
+    enterWith(vorgangSearch.getInput(), searchString, 500);
   }
 });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts
index c1c79e720ee8b57d483e70b000906259be6e79ed..fbcd2ba7850d363047117b9158bdbdec3e501e94 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts
@@ -26,20 +26,11 @@ import { VorgangListItemE2EComponent } from '../../../components/vorgang/vorgang
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
 import { UserE2E } from '../../../model/user';
 import { VorgangE2E } from '../../../model/vorgang';
-import {
-  MainPage,
-  waitForSpinnerToDisappear,
-  waitforSpinnerToAppear,
-} from '../../../page-objects/main.po';
+import { MainPage, waitForSpinnerToDisappear, waitforSpinnerToAppear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { dropCollections, wait } from '../../../support/cypress-helper';
-import { enter, exist, haveText, notExist } from '../../../support/cypress.util';
-import {
-  getUserDorothea,
-  getUserSabine,
-  initUsermanagerUsers,
-  loginAsSabine,
-} from '../../../support/user-util';
+import { enterWith, exist, haveText, notExist } from '../../../support/cypress.util';
+import { getUserDorothea, getUserSabine, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util';
 import { createVorgang, initVorgang } from '../../../support/vorgang-util';
 
 describe('User Profile im ausgewählten Vorgang', () => {
@@ -47,9 +38,7 @@ describe('User Profile im ausgewählten Vorgang', () => {
   const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const userProfileContainer: UserProfileE2EComponent = vorgangPage
-    .getVorgangDetailHeader()
-    .getUserContainer();
+  const userProfileContainer: UserProfileE2EComponent = vorgangPage.getVorgangDetailHeader().getUserContainer();
 
   const vorgang: VorgangE2E = createVorgang();
 
@@ -98,15 +87,16 @@ describe('User Profile im ausgewählten Vorgang', () => {
 
     describe('fill formular', () => {
       it('should show error on enter wrong input', () => {
-        userProfileContainer.getSearchContainer().getInput().clear().type('Clark Kent');
-        enter(userProfileContainer.getSearchContainer().getInput());
+        enterWith(userProfileContainer.getSearchContainer().getInput(), 'Clark Kent');
+        cy.wait(1000);
 
         exist(userProfileContainer.getSearchContainer().getError());
         exist(userProfileContainer.getIconContainer().getUnassignedIcon());
       });
 
       it('should show error on enter empty field', () => {
-        enter(userProfileContainer.getSearchContainer().getInput());
+        enterWith(userProfileContainer.getSearchContainer().getInput(), 'Clark Kent', 500);
+        cy.wait(1000);
 
         exist(userProfileContainer.getSearchContainer().getError());
         exist(userProfileContainer.getIconContainer().getUnassignedIcon());
@@ -138,11 +128,7 @@ describe('User Profile im ausgewählten Vorgang', () => {
 
         exist(vorgangList.getListItem(vorgang.name).getUserProfile().getRoot());
         haveText(
-          vorgangList
-            .getListItem(vorgang.name)
-            .getUserProfile()
-            .getIconContainer()
-            .getAssignedIcon(),
+          vorgangList.getListItem(vorgang.name).getUserProfile().getIconContainer().getAssignedIcon(),
           userSabine.initials,
         );
       });
@@ -168,10 +154,7 @@ describe('User Profile im ausgewählten Vorgang', () => {
         it('should hide formular', () => {
           userProfileContainer.getSearchContainer().getInput().clear().type(userDorothea.name);
           exist(userProfileContainer.getSearchContainer().getSearchOption(userDorothea.dataTestId));
-          userProfileContainer
-            .getSearchContainer()
-            .getSearchOption(userDorothea.dataTestId)
-            .click();
+          userProfileContainer.getSearchContainer().getSearchOption(userDorothea.dataTestId).click();
 
           waitforSpinnerToAppear();
           waitForSpinnerToDisappear();
@@ -184,10 +167,7 @@ describe('User Profile im ausgewählten Vorgang', () => {
           // WORKAROUND Hier muss aufs Verarbeiten im Backend gewartet werden - oder: wait(500)
           wait(500);
           exist(userProfileContainer.getIconContainer().getAssignedIcon());
-          haveText(
-            userProfileContainer.getIconContainer().getAssignedIcon(),
-            userDorothea.initials,
-          );
+          haveText(userProfileContainer.getIconContainer().getAssignedIcon(), userDorothea.initials);
         });
       });
     });
@@ -201,11 +181,7 @@ describe('User Profile im ausgewählten Vorgang', () => {
 
         exist(vorgangList.getListItem(vorgang.name).getUserProfile().getRoot());
         haveText(
-          vorgangList
-            .getListItem(vorgang.name)
-            .getUserProfile()
-            .getIconContainer()
-            .getAssignedIcon(),
+          vorgangList.getListItem(vorgang.name).getUserProfile().getIconContainer().getAssignedIcon(),
           userDorothea.initials,
         );
       });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-abschliessen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-abschliessen.cy.ts
index 7c24cf66f97dd2c37b98288fbe9bc481c5172aa9..2d3f3b5003c1f2a79e9a0d089eae7a56486c6c45 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-abschliessen.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-abschliessen.cy.ts
@@ -24,15 +24,10 @@
 import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components';
 import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.component';
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
-import {
-  VorgangE2E,
-  VorgangMessagesE2E,
-  VorgangStatusE2E,
-  vorgangStatusLabelE2E,
-} from '../../../model/vorgang';
+import { VorgangE2E, VorgangMessagesE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
-import { dropCollections } from '../../../support/cypress-helper';
+import { dropCollections, wait } from '../../../support/cypress-helper';
 import { contains, exist, haveText, notExist } from '../../../support/cypress.util';
 import { loginAsSabine } from '../../../support/user-util';
 import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
@@ -43,8 +38,7 @@ describe('Vorgang abschliessen', () => {
   const snackBar: SnackBarE2EComponent = mainPage.getSnackBar();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent =
-    vorgangPage.getFormularButtons();
+  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons();
 
   const vorgangAbschliessen: VorgangE2E = {
     ...buildVorgang(objectIds[0], 'DoAbschliessen'),
@@ -78,10 +72,7 @@ describe('Vorgang abschliessen', () => {
 
     describe('by button', () => {
       it('should have status Beschieden', () => {
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[vorgangAbschliessen.status],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbschliessen.status]);
       });
 
       it('should show snackBar message', () => {
@@ -99,10 +90,7 @@ describe('Vorgang abschliessen', () => {
       });
 
       it('should have status Abgeschlossen', () => {
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]);
       });
 
       it('back to vorgang list', () => {
@@ -131,10 +119,7 @@ describe('Vorgang abschliessen', () => {
 
     describe('by icon-button', () => {
       it('should have status Beschieden', () => {
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[vorgangAbschliessenRevoke.status],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbschliessenRevoke.status]);
       });
 
       it('should show snackBar message', () => {
@@ -147,6 +132,7 @@ describe('Vorgang abschliessen', () => {
 
       it('should close snackbar on revoke', () => {
         snackBar.getRevokeButton().click();
+        wait(500);
         waitForSpinnerToDisappear();
 
         notExist(snackBar.getMessage());
@@ -155,10 +141,7 @@ describe('Vorgang abschliessen', () => {
       it('should show status Beschieden', () => {
         notExist(vorgangPage.getProgressBar());
 
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN],
-        );
+        haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN]);
       });
 
       it('back to vorgang list', () => {
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-aktenzeichen-anlegen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-aktenzeichen-anlegen.cy.ts
index ffe5e2a8433e232d4859ac4af79d778d16e69193..7d14cdb7bd568826d12bf6ba6edd6d1a45a8be7d 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-aktenzeichen-anlegen.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-aktenzeichen-anlegen.cy.ts
@@ -22,12 +22,7 @@ import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { dropCollections } from '../../../support/cypress-helper';
 import { contains, enterWith, exist, notExist } from '../../../support/cypress.util';
 import { getUserSabine, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util';
-import {
-  buildVorgang,
-  initSearchIndex,
-  initVorgaenge,
-  objectIds,
-} from '../../../support/vorgang-util';
+import { buildVorgang, initSearchIndex, initVorgaenge, objectIds } from '../../../support/vorgang-util';
 
 registerLocaleData(localeDe, 'de', localeDeExtra);
 
@@ -46,8 +41,7 @@ describe('Aktenzeichen anlegen', () => {
 
   const vorgangPage: VorgangPage = new VorgangPage();
   const vorgangHeader: VorgangDetailHeaderE2EComponent = vorgangPage.getVorgangDetailHeader();
-  const aktenzeichenEditor: VorgangAktenzeichenEditE2EComponent =
-    vorgangPage.getAktenzeichenEditor();
+  const aktenzeichenEditor: VorgangAktenzeichenEditE2EComponent = vorgangPage.getAktenzeichenEditor();
   const header: HeaderE2EComponent = mainPage.getHeader();
   const vorgangSearch: VorgangSearchE2EComponent = header.getVorgangSearch();
   const bescheidWizard: VorgangBescheidWizardE2EComponent = vorgangPage.getBescheidWizard();
@@ -77,14 +71,10 @@ describe('Aktenzeichen anlegen', () => {
     aktenzeichen: searchAZ,
   };
 
-  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent =
-    vorgangPage.getFormularButtons();
-  const vorgangDatenFormular: VorgangFormularDatenE2EComponent =
-    vorgangPage.getFormularDatenContainer();
+  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons();
+  const vorgangDatenFormular: VorgangFormularDatenE2EComponent = vorgangPage.getFormularDatenContainer();
 
-  const vorgangShowInSearch: VorgangListItemE2EComponent = vorgangList.getListItem(
-    aktenzeichenVorgangSearch.name,
-  );
+  const vorgangShowInSearch: VorgangListItemE2EComponent = vorgangList.getListItem(aktenzeichenVorgangSearch.name);
 
   before(() => {
     initVorgaenge([
@@ -305,9 +295,7 @@ describe('Aktenzeichen anlegen', () => {
   describe('search for Aktenzeichen', () => {
     it('should find Vorgang with existing Aktenzeichen', () => {
       vorgangList.getListItem(aktenzeichenVorgangSearch.name).getRoot().click();
-      enterWith(vorgangSearch.getInput(), searchAZ);
-      //currently the first search only works if you manually send an Enter after a short delay
-      cy.wait(1000);
+      enterWith(vorgangSearch.getInput(), searchAZ, 500);
       vorgangSearch.getInput().type('{enter}');
 
       exist(vorgangShowInSearch.getRoot());
@@ -317,7 +305,7 @@ describe('Aktenzeichen anlegen', () => {
       vorgangList.getListItem(aktenzeichenVorgangSearch.name).getRoot().click();
       vorgangHeader.getAktenzeichenEditButton().click();
       setNewAktenzeichen(newAZ);
-      enterWith(vorgangSearch.getInput(), searchAZ);
+      enterWith(vorgangSearch.getInput(), searchAZ, 500);
 
       notExist(vorgangShowInSearch.getRoot());
     });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.cy.ts
index 656e52ca66f34a7cb7c684a7e301551872f6781d..d2645d5b111baa0cb19196e58f8ea48627ffc7a2 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.cy.ts
@@ -24,23 +24,13 @@
 import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components';
 import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.component';
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
-import {
-  VorgangE2E,
-  VorgangMessagesE2E,
-  VorgangStatusE2E,
-  vorgangStatusLabelE2E,
-} from '../../../model/vorgang';
+import { VorgangE2E, VorgangMessagesE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { dropCollections, wait } from '../../../support/cypress-helper';
 import { contains, exist, haveText, notExist } from '../../../support/cypress.util';
 import { loginAsSabine } from '../../../support/user-util';
-import {
-  buildVorgang,
-  createVorgang,
-  initVorgaenge,
-  objectIds,
-} from '../../../support/vorgang-util';
+import { buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
 
 describe('Vorgang wiedereroeffnen', () => {
   const mainPage: MainPage = new MainPage();
@@ -48,8 +38,7 @@ describe('Vorgang wiedereroeffnen', () => {
   const snackbar: SnackBarE2EComponent = mainPage.getSnackBar();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent =
-    vorgangPage.getFormularButtons();
+  const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons();
 
   const vorgangBeschiedenWiedereroeffnen: VorgangE2E = {
     ...createVorgang(),
@@ -119,10 +108,7 @@ describe('Vorgang wiedereroeffnen', () => {
         });
 
         it('should have status In Bearbeitung', () => {
-          haveText(
-            vorgangPage.getVorgangDetailHeader().getStatus(),
-            vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
-          );
+          haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
         });
 
         it('back to vorgang list', () => {
@@ -177,10 +163,7 @@ describe('Vorgang wiedereroeffnen', () => {
         it('should show status Beschieden', () => {
           wait(500);
 
-          haveText(
-            vorgangPage.getVorgangDetailHeader().getStatus(),
-            vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN],
-          );
+          haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN]);
         });
 
         it('back to vorgang list', () => {
@@ -232,10 +215,7 @@ describe('Vorgang wiedereroeffnen', () => {
         });
 
         it('should have status In Bearbeitung', () => {
-          haveText(
-            vorgangPage.getVorgangDetailHeader().getStatus(),
-            vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
-          );
+          haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
         });
 
         it('back to vorgang list', () => {
@@ -280,6 +260,7 @@ describe('Vorgang wiedereroeffnen', () => {
 
         it('should close snackbar on revoke', () => {
           snackbar.getRevokeButton().click();
+          wait(500);
           waitForSpinnerToDisappear();
 
           notExist(snackbar.getMessage());
@@ -288,10 +269,7 @@ describe('Vorgang wiedereroeffnen', () => {
         it('should show status Abgeschlossen', () => {
           notExist(vorgangPage.getProgressBar());
 
-          haveText(
-            vorgangPage.getVorgangDetailHeader().getStatus(),
-            vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
-          );
+          haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]);
         });
 
         it('back to vorgang list', () => {
diff --git a/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json b/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json
new file mode 100644
index 0000000000000000000000000000000000000000..0967ef424bce6791893e9a57bb952f80fd536e93
--- /dev/null
+++ b/alfa-client/apps/alfa-e2e/src/fixtures/usermanager/user-ids.json
@@ -0,0 +1 @@
+{}
diff --git a/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts b/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
index aa30f90a3e2aba7dfd964af16093943324b68d14..9787ef0dd9b5e64b2d7b739d6edf255cdf63a58b 100644
--- a/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
@@ -42,6 +42,7 @@ enum CypressTasks {
   DELETE_FOLDER = 'deleteFolder',
   UNZIP_FILE = 'unzipDownloadFile',
   GET_DOWNLOAD_FILES = 'getDownloadFiles',
+  WRITE_USER_IDS_TO_FILE = 'writeUserIdsToFile',
 }
 
 enum MongoCollections {
@@ -146,6 +147,10 @@ export function getDownloadFiles(): Cypress.Chainable<Array<string>> {
   return cy.task(CypressTasks.GET_DOWNLOAD_FILES, DOWNLOAD_FOLDER);
 }
 
+export function writeUserIdsIntoFile() {
+  return cy.task(CypressTasks.WRITE_USER_IDS_TO_FILE, { collection: MongoCollections.USER });
+}
+
 export function scrollToWindowBottom(): void {
   cy.window().scrollTo('bottom');
 }
@@ -154,11 +159,7 @@ export function intercept(method: string, url: string): Cypress.Chainable<null>
   return cy.intercept(method, url);
 }
 
-export function interceptWithResponse(
-  method,
-  url: RouteMatcher,
-  response: RouteHandler,
-): Cypress.Chainable<null> {
+export function interceptWithResponse(method, url: RouteMatcher, response: RouteHandler): Cypress.Chainable<null> {
   return cy.intercept(method, url, response);
 }
 
@@ -185,6 +186,7 @@ export function wait(ms: number, reason = ''): void {
     console.log(`Had to wait ${ms}ms because of: ${reason}`);
   }
 }
+
 //
 
 export function reload(): void {
diff --git a/alfa-client/apps/alfa-e2e/src/support/cypress-tasks.ts b/alfa-client/apps/alfa-e2e/src/support/cypress-tasks.ts
index a1926d26e2cd70c9e92fc9fc40271a782ac16859..cb2d876ca6b1caea67aa0dc913431cba44872609 100644
--- a/alfa-client/apps/alfa-e2e/src/support/cypress-tasks.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/cypress-tasks.ts
@@ -1,5 +1,5 @@
 import { readdir, remove } from 'fs-extra';
-import { Db, Long, MongoClient, ObjectId } from 'mongodb';
+import { Db, Document, Long, MongoClient, ObjectId, WithId } from 'mongodb';
 
 const fs = require('fs');
 const decompress = require('decompress');
@@ -66,6 +66,14 @@ module.exports = (on: any, config: any) => {
       unzipFile(folderName, fileName);
       return 0;
     },
+    writeUserIdsToFile({ collection }) {
+      writeUserIds(getUserManagerDatabaseUrl(config), getUserManagerDatabase(config), collection).then(
+        (userIds: { [username: string]: string }) => {
+          fs.writeFileSync('src/fixtures/usermanager/user-ids.json', JSON.stringify(userIds));
+        },
+      );
+      return 0;
+    },
   });
 
   on('after:spec', (spec: Cypress.Spec, results: CypressCommandLine.RunResult) => {
@@ -373,3 +381,19 @@ function unzipFile(folderName: string, fileName: string): void {
   decompress(folderName + '/' + fileName, folderName);
   return null;
 }
+
+async function writeUserIds(databaseUrl, databaseName, collection) {
+  return MongoClient.connect(databaseUrl).then((client: MongoClient) => {
+    const db: Db = client.db(databaseName);
+    const userIds: { [username: string]: string } = {};
+    return db
+      .collection(collection)
+      .find()
+      .map((doc: WithId<Document>) => [doc['username'], doc._id.toString()])
+      .toArray()
+      .then((docData: [string, string][]) => {
+        docData.forEach((data) => Object.assign(userIds, { [data[0]]: data[1] }));
+        return userIds;
+      });
+  });
+}
diff --git a/alfa-client/apps/alfa-e2e/src/support/user-util.ts b/alfa-client/apps/alfa-e2e/src/support/user-util.ts
index 34d06a712b3944f70b621d4507ca2dfc3b6ca004..4abfd9ad6eaed01c439575dec62211867312bcf6 100644
--- a/alfa-client/apps/alfa-e2e/src/support/user-util.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/user-util.ts
@@ -21,9 +21,11 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+import { isNotEmpty } from '@alfa-client/tech-shared';
+import { isEmpty } from 'lodash-es';
 import { UserE2E } from '../model/user';
 import { UsermanagerUserE2E } from '../model/usermanager';
-import { initUsermanagerData, login } from './cypress-helper';
+import { login } from './cypress-helper';
 
 const sabineFixture: UserE2E = require('../fixtures/user-main/user_sabine.json');
 const dorotheaFixture: UserE2E = require('../fixtures/user-main/user_dorothea.json');
@@ -36,16 +38,33 @@ const userManagerEmilFixture: UsermanagerUserE2E = require('../fixtures/usermana
 const userManagerDorotheaFixture: UsermanagerUserE2E = require('../fixtures/usermanager/usermanager_user_dorothea.json');
 const userManagerZeldaFixture: UsermanagerUserE2E = require('../fixtures/usermanager/usermanager_user_zelda.json');
 const userManagerArianeFixture: UsermanagerUserE2E = require('../fixtures/usermanager/usermanager_user_ariane.json');
+const userIds: { [username: string]: string } = require('../fixtures/usermanager/user-ids.json');
+
+type Username = 'sabine' | 'peter' | 'emil' | 'adelheit' | 'ludwig' | 'richard' | 'zonk' | 'dorothea';
+
+export function getUserId(username: Username) {
+  if (isEmpty(userIds)) {
+    throw new Error('user ids from fixtures/usermanager/user-ids.json empty');
+  }
+  if (isEmpty(userIds[username])) {
+    throw new Error(`username ${username} not found in fixtures/usermanager/user-ids.json`);
+  }
+  return userIds[username];
+}
+
+export function areUsersSynced(): boolean {
+  return isNotEmpty(userIds);
+}
 
 export function initUsermanagerUsers() {
-  initUsermanagerData([
-    getUserManagerUserSabine(),
-    getUserManagerUserPeter(),
-    getUserManagerUserEmil(),
-    getUserManagerUserDorothea(),
-    getUserManagerUserZelda(),
-    getUserManagerUserAriane(),
-  ]);
+  // initUsermanagerData([
+  //   getUserManagerUserSabine(),
+  //   getUserManagerUserPeter(),
+  //   getUserManagerUserEmil(),
+  //   getUserManagerUserDorothea(),
+  //   getUserManagerUserZelda(),
+  //   getUserManagerUserAriane(),
+  // ]);
 }
 
 export function getUserSabine(): UserE2E {
@@ -89,20 +108,21 @@ export function getUserManagerUserAriane(): UsermanagerUserE2E {
 }
 
 export function getUserSabineId(): string {
-  return getUserManagerUserSabine()._id.$oid;
+  return getUserId('sabine');
 }
 
 export function getUserDorotheaId(): string {
-  return getUserManagerUserDorothea()._id.$oid;
+  return getUserId('dorothea');
 }
 
-enum DatabaseUser {
+export enum DatabaseUser {
   EMIL = 'user-ea/user_emil.json',
   ADELHEIT = 'user-main/user_adelheit.json',
   LUDWIG = 'user-main/user_ludwig.json',
   PETER = 'user-main/user_peter.json',
   RICHARD = 'user-main/user_richard.json',
   SABINE = 'user-main/user_sabine.json',
+  DOROTHEA = 'user-main/user_dorothea.json',
   ZELDA = 'user-main/user_zelda.json',
   ZONK = 'user-main/user_zonk.json',
   ARIANE = 'user-main/user_ariane.json',